Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(340)

Side by Side Diff: ppapi/proxy/plugin_var_tracker.cc

Issue 1548813002: Switch to standard integer types in ppapi/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ppapi/proxy/plugin_var_tracker.h ('k') | ppapi/proxy/plugin_var_tracker_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/proxy/plugin_var_tracker.h" 5 #include "ppapi/proxy/plugin_var_tracker.h"
6 6
7 #include <stddef.h>
8
7 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
8 #include "base/memory/singleton.h" 10 #include "base/memory/singleton.h"
9 #include "ipc/ipc_message.h" 11 #include "ipc/ipc_message.h"
10 #include "ppapi/c/dev/ppp_class_deprecated.h" 12 #include "ppapi/c/dev/ppp_class_deprecated.h"
11 #include "ppapi/c/ppb_var.h" 13 #include "ppapi/c/ppb_var.h"
12 #include "ppapi/proxy/file_system_resource.h" 14 #include "ppapi/proxy/file_system_resource.h"
13 #include "ppapi/proxy/media_stream_audio_track_resource.h" 15 #include "ppapi/proxy/media_stream_audio_track_resource.h"
14 #include "ppapi/proxy/media_stream_video_track_resource.h" 16 #include "ppapi/proxy/media_stream_video_track_resource.h"
15 #include "ppapi/proxy/plugin_array_buffer_var.h" 17 #include "ppapi/proxy/plugin_array_buffer_var.h"
16 #include "ppapi/proxy/plugin_dispatcher.h" 18 #include "ppapi/proxy/plugin_dispatcher.h"
(...skipping 13 matching lines...) Expand all
30 namespace { 32 namespace {
31 33
32 Connection GetConnectionForInstance(PP_Instance instance) { 34 Connection GetConnectionForInstance(PP_Instance instance) {
33 PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance); 35 PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
34 DCHECK(dispatcher); 36 DCHECK(dispatcher);
35 return Connection(PluginGlobals::Get()->GetBrowserSender(), dispatcher); 37 return Connection(PluginGlobals::Get()->GetBrowserSender(), dispatcher);
36 } 38 }
37 39
38 } // namespace 40 } // namespace
39 41
40 PluginVarTracker::HostVar::HostVar(PluginDispatcher* d, int32 i) 42 PluginVarTracker::HostVar::HostVar(PluginDispatcher* d, int32_t i)
41 : dispatcher(d), 43 : dispatcher(d), host_object_id(i) {}
42 host_object_id(i) {
43 }
44 44
45 bool PluginVarTracker::HostVar::operator<(const HostVar& other) const { 45 bool PluginVarTracker::HostVar::operator<(const HostVar& other) const {
46 if (dispatcher < other.dispatcher) 46 if (dispatcher < other.dispatcher)
47 return true; 47 return true;
48 if (other.dispatcher < dispatcher) 48 if (other.dispatcher < dispatcher)
49 return false; 49 return false;
50 return host_object_id < other.host_object_id; 50 return host_object_id < other.host_object_id;
51 } 51 }
52 52
53 PluginVarTracker::PluginVarTracker() : VarTracker(THREAD_SAFE) { 53 PluginVarTracker::PluginVarTracker() : VarTracker(THREAD_SAFE) {
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 return object->dispatcher(); 152 return object->dispatcher();
153 } 153 }
154 154
155 void PluginVarTracker::ReleaseHostObject(PluginDispatcher* dispatcher, 155 void PluginVarTracker::ReleaseHostObject(PluginDispatcher* dispatcher,
156 const PP_Var& host_object) { 156 const PP_Var& host_object) {
157 CheckThreadingPreconditions(); 157 CheckThreadingPreconditions();
158 DCHECK(host_object.type == PP_VARTYPE_OBJECT); 158 DCHECK(host_object.type == PP_VARTYPE_OBJECT);
159 159
160 // Convert the host object to a normal var valid in the plugin. 160 // Convert the host object to a normal var valid in the plugin.
161 HostVarToPluginVarMap::iterator found = host_var_to_plugin_var_.find( 161 HostVarToPluginVarMap::iterator found = host_var_to_plugin_var_.find(
162 HostVar(dispatcher, static_cast<int32>(host_object.value.as_id))); 162 HostVar(dispatcher, static_cast<int32_t>(host_object.value.as_id)));
163 if (found == host_var_to_plugin_var_.end()) { 163 if (found == host_var_to_plugin_var_.end()) {
164 NOTREACHED(); 164 NOTREACHED();
165 return; 165 return;
166 } 166 }
167 167
168 // Now just release the object given the plugin var ID. 168 // Now just release the object given the plugin var ID.
169 ReleaseVar(found->second); 169 ReleaseVar(found->second);
170 } 170 }
171 171
172 PP_Var PluginVarTracker::MakeResourcePPVarFromMessage( 172 PP_Var PluginVarTracker::MakeResourcePPVarFromMessage(
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 it != live_vars_.end(); 296 it != live_vars_.end();
297 ++it) { 297 ++it) {
298 if (it->second.var.get() == NULL) 298 if (it->second.var.get() == NULL)
299 continue; 299 continue;
300 ProxyObjectVar* object = it->second.var->AsProxyObjectVar(); 300 ProxyObjectVar* object = it->second.var->AsProxyObjectVar();
301 if (object && object->dispatcher() == dispatcher) 301 if (object && object->dispatcher() == dispatcher)
302 object->clear_dispatcher(); 302 object->clear_dispatcher();
303 } 303 }
304 } 304 }
305 305
306 ArrayBufferVar* PluginVarTracker::CreateArrayBuffer(uint32 size_in_bytes) { 306 ArrayBufferVar* PluginVarTracker::CreateArrayBuffer(uint32_t size_in_bytes) {
307 return new PluginArrayBufferVar(size_in_bytes); 307 return new PluginArrayBufferVar(size_in_bytes);
308 } 308 }
309 309
310 ArrayBufferVar* PluginVarTracker::CreateShmArrayBuffer( 310 ArrayBufferVar* PluginVarTracker::CreateShmArrayBuffer(
311 uint32 size_in_bytes, 311 uint32_t size_in_bytes,
312 base::SharedMemoryHandle handle) { 312 base::SharedMemoryHandle handle) {
313 return new PluginArrayBufferVar(size_in_bytes, handle); 313 return new PluginArrayBufferVar(size_in_bytes, handle);
314 } 314 }
315 315
316 void PluginVarTracker::PluginImplementedObjectCreated( 316 void PluginVarTracker::PluginImplementedObjectCreated(
317 PP_Instance instance, 317 PP_Instance instance,
318 const PP_Var& created_var, 318 const PP_Var& created_var,
319 const PPP_Class_Deprecated* ppp_class, 319 const PPP_Class_Deprecated* ppp_class,
320 void* ppp_class_data) { 320 void* ppp_class_data) {
321 PluginImplementedVar p; 321 PluginImplementedVar p;
(...skipping 24 matching lines...) Expand all
346 bool PluginVarTracker::ValidatePluginObjectCall( 346 bool PluginVarTracker::ValidatePluginObjectCall(
347 const PPP_Class_Deprecated* ppp_class, 347 const PPP_Class_Deprecated* ppp_class,
348 void* user_data) { 348 void* user_data) {
349 UserDataToPluginImplementedVarMap::iterator found = 349 UserDataToPluginImplementedVarMap::iterator found =
350 user_data_to_plugin_.find(user_data); 350 user_data_to_plugin_.find(user_data);
351 if (found == user_data_to_plugin_.end()) 351 if (found == user_data_to_plugin_.end())
352 return false; 352 return false;
353 return found->second.ppp_class == ppp_class; 353 return found->second.ppp_class == ppp_class;
354 } 354 }
355 355
356 int32 PluginVarTracker::AddVarInternal(Var* var, AddVarRefMode mode) { 356 int32_t PluginVarTracker::AddVarInternal(Var* var, AddVarRefMode mode) {
357 // Normal adding. 357 // Normal adding.
358 int32 new_id = VarTracker::AddVarInternal(var, mode); 358 int32_t new_id = VarTracker::AddVarInternal(var, mode);
359 359
360 // Need to add proxy objects to the host var map. 360 // Need to add proxy objects to the host var map.
361 ProxyObjectVar* proxy_object = var->AsProxyObjectVar(); 361 ProxyObjectVar* proxy_object = var->AsProxyObjectVar();
362 if (proxy_object) { 362 if (proxy_object) {
363 HostVar host_var(proxy_object->dispatcher(), proxy_object->host_var_id()); 363 HostVar host_var(proxy_object->dispatcher(), proxy_object->host_var_id());
364 // TODO(teravest): Change to DCHECK when http://crbug.com/276347 is 364 // TODO(teravest): Change to DCHECK when http://crbug.com/276347 is
365 // resolved. 365 // resolved.
366 CHECK(host_var_to_plugin_var_.find(host_var) == 366 CHECK(host_var_to_plugin_var_.find(host_var) ==
367 host_var_to_plugin_var_.end()); // Adding an object twice, use 367 host_var_to_plugin_var_.end()); // Adding an object twice, use
368 // FindOrMakePluginVarFromHostVar. 368 // FindOrMakePluginVarFromHostVar.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 // Clean up the host var mapping. 436 // Clean up the host var mapping.
437 DCHECK(host_var_to_plugin_var_.find(host_var) != 437 DCHECK(host_var_to_plugin_var_.find(host_var) !=
438 host_var_to_plugin_var_.end()); 438 host_var_to_plugin_var_.end());
439 host_var_to_plugin_var_.erase(host_var); 439 host_var_to_plugin_var_.erase(host_var);
440 return true; 440 return true;
441 } 441 }
442 442
443 PP_Var PluginVarTracker::GetOrCreateObjectVarID(ProxyObjectVar* object) { 443 PP_Var PluginVarTracker::GetOrCreateObjectVarID(ProxyObjectVar* object) {
444 // We can't use object->GetPPVar() because we don't want to affect the 444 // We can't use object->GetPPVar() because we don't want to affect the
445 // refcount, so we have to add everything manually here. 445 // refcount, so we have to add everything manually here.
446 int32 var_id = object->GetExistingVarID(); 446 int32_t var_id = object->GetExistingVarID();
447 if (!var_id) { 447 if (!var_id) {
448 var_id = AddVarInternal(object, ADD_VAR_CREATE_WITH_NO_REFERENCE); 448 var_id = AddVarInternal(object, ADD_VAR_CREATE_WITH_NO_REFERENCE);
449 object->AssignVarID(var_id); 449 object->AssignVarID(var_id);
450 } 450 }
451 451
452 PP_Var ret = { PP_VARTYPE_OBJECT }; 452 PP_Var ret = { PP_VARTYPE_OBJECT };
453 ret.value.as_id = var_id; 453 ret.value.as_id = var_id;
454 return ret; 454 return ret;
455 } 455 }
456 456
(...skipping 17 matching lines...) Expand all
474 const PP_Var& var, 474 const PP_Var& var,
475 PluginDispatcher* dispatcher) { 475 PluginDispatcher* dispatcher) {
476 DCHECK(var.type == PP_VARTYPE_OBJECT); 476 DCHECK(var.type == PP_VARTYPE_OBJECT);
477 HostVar host_var(dispatcher, var.value.as_id); 477 HostVar host_var(dispatcher, var.value.as_id);
478 478
479 HostVarToPluginVarMap::iterator found = 479 HostVarToPluginVarMap::iterator found =
480 host_var_to_plugin_var_.find(host_var); 480 host_var_to_plugin_var_.find(host_var);
481 if (found == host_var_to_plugin_var_.end()) { 481 if (found == host_var_to_plugin_var_.end()) {
482 // Create a new object. 482 // Create a new object.
483 return scoped_refptr<ProxyObjectVar>( 483 return scoped_refptr<ProxyObjectVar>(
484 new ProxyObjectVar(dispatcher, static_cast<int32>(var.value.as_id))); 484 new ProxyObjectVar(dispatcher, static_cast<int32_t>(var.value.as_id)));
485 } 485 }
486 486
487 // Have this host var, look up the object. 487 // Have this host var, look up the object.
488 VarMap::iterator ret = live_vars_.find(found->second); 488 VarMap::iterator ret = live_vars_.find(found->second);
489 489
490 // We CHECK here because we currently don't fall back sanely. 490 // We CHECK here because we currently don't fall back sanely.
491 // This may be involved in a NULL dereference. http://crbug.com/276347 491 // This may be involved in a NULL dereference. http://crbug.com/276347
492 CHECK(ret != live_vars_.end()); 492 CHECK(ret != live_vars_.end());
493 493
494 // All objects should be proxy objects. 494 // All objects should be proxy objects.
495 DCHECK(ret->second.var->AsProxyObjectVar()); 495 DCHECK(ret->second.var->AsProxyObjectVar());
496 return scoped_refptr<ProxyObjectVar>(ret->second.var->AsProxyObjectVar()); 496 return scoped_refptr<ProxyObjectVar>(ret->second.var->AsProxyObjectVar());
497 } 497 }
498 498
499 int PluginVarTracker::TrackSharedMemoryHandle(PP_Instance instance, 499 int PluginVarTracker::TrackSharedMemoryHandle(PP_Instance instance,
500 base::SharedMemoryHandle handle, 500 base::SharedMemoryHandle handle,
501 uint32 size_in_bytes) { 501 uint32_t size_in_bytes) {
502 NOTREACHED(); 502 NOTREACHED();
503 return -1; 503 return -1;
504 } 504 }
505 505
506 bool PluginVarTracker::StopTrackingSharedMemoryHandle( 506 bool PluginVarTracker::StopTrackingSharedMemoryHandle(
507 int id, 507 int id,
508 PP_Instance instance, 508 PP_Instance instance,
509 base::SharedMemoryHandle* handle, 509 base::SharedMemoryHandle* handle,
510 uint32* size_in_bytes) { 510 uint32_t* size_in_bytes) {
511 NOTREACHED(); 511 NOTREACHED();
512 return false; 512 return false;
513 } 513 }
514 514
515 } // namesace proxy 515 } // namesace proxy
516 } // namespace ppapi 516 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/plugin_var_tracker.h ('k') | ppapi/proxy/plugin_var_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698