Index: ppapi/proxy/ppb_core_proxy.cc |
diff --git a/ppapi/proxy/ppb_core_proxy.cc b/ppapi/proxy/ppb_core_proxy.cc |
index 83eea373c4fbb4762996a267a702db4a71b46675..d3d17c0dd652c6d8d113408e2b0fb20145bd4ee3 100644 |
--- a/ppapi/proxy/ppb_core_proxy.cc |
+++ b/ppapi/proxy/ppb_core_proxy.cc |
@@ -75,31 +75,23 @@ const PPB_Core core_interface = { |
&IsMainThread |
}; |
-InterfaceProxy* CreateCoreProxy(Dispatcher* dispatcher, |
- const void* target_interface) { |
- return new PPB_Core_Proxy(dispatcher, target_interface); |
-} |
- |
} // namespace |
-PPB_Core_Proxy::PPB_Core_Proxy(Dispatcher* dispatcher, |
- const void* target_interface) |
- : InterfaceProxy(dispatcher, target_interface) { |
+PPB_Core_Proxy::PPB_Core_Proxy(Dispatcher* dispatcher) |
+ : InterfaceProxy(dispatcher), |
+ ppb_core_impl_(NULL) { |
+ if (!dispatcher->IsPlugin()) { |
+ ppb_core_impl_ = static_cast<const PPB_Core*>( |
+ dispatcher->local_get_interface()(PPB_CORE_INTERFACE)); |
+ } |
} |
PPB_Core_Proxy::~PPB_Core_Proxy() { |
} |
// static |
-const InterfaceProxy::Info* PPB_Core_Proxy::GetInfo() { |
- static const Info info = { |
- &core_interface, |
- PPB_CORE_INTERFACE, |
- INTERFACE_ID_PPB_CORE, |
- false, |
- &CreateCoreProxy, |
- }; |
- return &info; |
+const PPB_Core* PPB_Core_Proxy::GetPPB_Core_Interface() { |
+ return &core_interface; |
} |
bool PPB_Core_Proxy::OnMessageReceived(const IPC::Message& msg) { |
@@ -116,11 +108,11 @@ bool PPB_Core_Proxy::OnMessageReceived(const IPC::Message& msg) { |
} |
void PPB_Core_Proxy::OnMsgAddRefResource(const HostResource& resource) { |
- ppb_core_target()->AddRefResource(resource.host_resource()); |
+ ppb_core_impl_->AddRefResource(resource.host_resource()); |
} |
void PPB_Core_Proxy::OnMsgReleaseResource(const HostResource& resource) { |
- ppb_core_target()->ReleaseResource(resource.host_resource()); |
+ ppb_core_impl_->ReleaseResource(resource.host_resource()); |
} |
} // namespace proxy |