Index: ppapi/thunk/ppb_gamepad_thunk.cc |
diff --git a/ppapi/thunk/ppb_gamepad_thunk.cc b/ppapi/thunk/ppb_gamepad_thunk.cc |
index 61b3195abbb585cca4112e256357f6b7caeedb3c..3aeedb57dea12d116e6b0f112e98327f5ff1510b 100644 |
--- a/ppapi/thunk/ppb_gamepad_thunk.cc |
+++ b/ppapi/thunk/ppb_gamepad_thunk.cc |
@@ -2,9 +2,12 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include <string.h> |
+ |
#include "ppapi/c/ppb_gamepad.h" |
#include "ppapi/thunk/thunk.h" |
#include "ppapi/thunk/enter.h" |
+#include "ppapi/thunk/ppb_gamepad_api.h" |
#include "ppapi/thunk/ppb_instance_api.h" |
#include "ppapi/thunk/resource_creation_api.h" |
@@ -15,9 +18,15 @@ namespace { |
void SampleGamepads(PP_Instance instance, PP_GamepadsSampleData* data) { |
EnterInstance enter(instance); |
- if (enter.failed()) |
- return; |
- enter.functions()->SampleGamepads(instance, data); |
+ if (enter.succeeded()) { |
+ PPB_Gamepad_API* api = enter.functions()->GetGamepadAPI(instance); |
+ if (api) { |
+ api->Sample(data); |
+ return; |
+ } |
+ } |
+ // Failure, zero out. |
+ memset(data, 0, sizeof(PP_GamepadsSampleData)); |
} |
const PPB_Gamepad g_ppb_gamepad_thunk = { |