summaryrefslogtreecommitdiffstats
path: root/ppapi/shared_impl/resource_var.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/shared_impl/resource_var.cc')
-rw-r--r--ppapi/shared_impl/resource_var.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/ppapi/shared_impl/resource_var.cc b/ppapi/shared_impl/resource_var.cc
index 61709119..7936e70 100644
--- a/ppapi/shared_impl/resource_var.cc
+++ b/ppapi/shared_impl/resource_var.cc
@@ -4,6 +4,9 @@
#include "ppapi/shared_impl/resource_var.h"
+#include "ppapi/shared_impl/ppapi_globals.h"
+#include "ppapi/shared_impl/var_tracker.h"
+
namespace ppapi {
ResourceVar::ResourceVar() : pp_resource_(0) {}
@@ -21,16 +24,18 @@ ResourceVar* ResourceVar::AsResourceVar() {
}
PP_VarType ResourceVar::GetType() const {
- // TODO(mgiuca): Return PP_VARTYPE_RESOURCE, once that is a valid enum value.
- NOTREACHED();
- return PP_VARTYPE_UNDEFINED;
+ return PP_VARTYPE_RESOURCE;
}
// static
ResourceVar* ResourceVar::FromPPVar(PP_Var var) {
- // TODO(mgiuca): Implement this function, once PP_VARTYPE_RESOURCE is
- // introduced.
- return NULL;
+ if (var.type != PP_VARTYPE_RESOURCE)
+ return NULL;
+ scoped_refptr<Var> var_object(
+ PpapiGlobals::Get()->GetVarTracker()->GetVar(var));
+ if (!var_object.get())
+ return NULL;
+ return var_object->AsResourceVar();
}
} // namespace ppapi