diff options
author | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-14 21:50:36 +0000 |
---|---|---|
committer | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-14 21:50:36 +0000 |
commit | 142b19f13984918a79842905ddfee6efed72e56d (patch) | |
tree | 7efe121e525119596cbe23fdc6b12120b43c6ae5 /cc/resources/shared_bitmap.cc | |
parent | 6b4c88b9d8dc0dbcca025bd768dd62dce09d362a (diff) | |
download | chromium_src-142b19f13984918a79842905ddfee6efed72e56d.zip chromium_src-142b19f13984918a79842905ddfee6efed72e56d.tar.gz chromium_src-142b19f13984918a79842905ddfee6efed72e56d.tar.bz2 |
Revert 257161 "Revert 256955 "Add shared bitmap managers for bro..."
Turns out the child process was mapping the memory twice, so fixed that.
> Revert 256955 "Add shared bitmap managers for browser and render..."
>
> Seems to be causing renderer crashes and possibly out-of-memory issues.
>
> > Add shared bitmap managers for browser and renderer processes.
> >
> > The shared bitmap managers will allow software tiles to be allocated in shared memory, so delegated rendering could be used with them.
> >
> > BUG=327220
> > R=danakj@chromium.org, jschuh@chromium.org, piman@chromium.org
> >
> > Review URL: https://codereview.chromium.org/148243013
>
> TBR=jbauman@chromium.org
>
> Review URL: https://codereview.chromium.org/197703004
TBR=jbauman@chromium.org
Review URL: https://codereview.chromium.org/200913002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257216 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/resources/shared_bitmap.cc')
-rw-r--r-- | cc/resources/shared_bitmap.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cc/resources/shared_bitmap.cc b/cc/resources/shared_bitmap.cc index 3a6fc35..3b94d45 100644 --- a/cc/resources/shared_bitmap.cc +++ b/cc/resources/shared_bitmap.cc @@ -4,6 +4,9 @@ #include "cc/resources/shared_bitmap.h" +#include "base/numerics/safe_math.h" +#include "base/rand_util.h" + namespace cc { SharedBitmap::SharedBitmap( @@ -14,4 +17,26 @@ SharedBitmap::SharedBitmap( SharedBitmap::~SharedBitmap() { free_callback_.Run(this); } +// static +bool SharedBitmap::GetSizeInBytes(const gfx::Size& size, + size_t* size_in_bytes) { + if (size.width() <= 0 || size.height() <= 0) + return false; + base::CheckedNumeric<int> s = size.width(); + s *= size.height(); + s *= 4; + if (!s.IsValid()) + return false; + *size_in_bytes = s.ValueOrDie(); + return true; +} + +// static +SharedBitmapId SharedBitmap::GenerateId() { + SharedBitmapId id; + // Needs cryptographically-secure random numbers. + base::RandBytes(id.name, sizeof(id.name)); + return id; +} + } // namespace cc |