diff options
author | dongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-16 11:57:57 +0000 |
---|---|---|
committer | dongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-16 11:57:57 +0000 |
commit | 28b989cc54a58fc7fabe0ef545cf5256d04ca8d9 (patch) | |
tree | 610081e373498dd2a47d0deaf00f8fe05116a1d6 /content | |
parent | a1031cb38c8616ab2ecafe077c6a99b2c5f7cb18 (diff) | |
download | chromium_src-28b989cc54a58fc7fabe0ef545cf5256d04ca8d9.zip chromium_src-28b989cc54a58fc7fabe0ef545cf5256d04ca8d9.tar.gz chromium_src-28b989cc54a58fc7fabe0ef545cf5256d04ca8d9.tar.bz2 |
SyncPointManager never returns 0.
When the next sync point overflow occurs, it returns 1, not 0.
BUG=365904, 373452
Review URL: https://codereview.chromium.org/288153004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270997 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/common/gpu/sync_point_manager.cc | 3 | ||||
-rw-r--r-- | content/common/gpu/sync_point_manager.h | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/content/common/gpu/sync_point_manager.cc b/content/common/gpu/sync_point_manager.cc index 9383574..5aa4b7e 100644 --- a/content/common/gpu/sync_point_manager.cc +++ b/content/common/gpu/sync_point_manager.cc @@ -26,6 +26,9 @@ SyncPointManager::~SyncPointManager() { uint32 SyncPointManager::GenerateSyncPoint() { base::AutoLock lock(lock_); uint32 sync_point = next_sync_point_++; + // When an integer overflow occurs, don't return 0. + if (!sync_point) + sync_point = next_sync_point_++; // Note: wrapping would take days for a buggy/compromized renderer that would // insert sync points in a loop, but if that were to happen, better explicitly diff --git a/content/common/gpu/sync_point_manager.h b/content/common/gpu/sync_point_manager.h index d46ad60..77a4e6d 100644 --- a/content/common/gpu/sync_point_manager.h +++ b/content/common/gpu/sync_point_manager.h @@ -22,7 +22,7 @@ class SyncPointManager : public base::RefCountedThreadSafe<SyncPointManager> { SyncPointManager(); // Generates a sync point, returning its ID. This can me called on any thread. - // IDs start at 1. + // IDs start at a random number. Never return 0. uint32 GenerateSyncPoint(); // Retires a sync point. This will call all the registered callbacks for this |