summaryrefslogtreecommitdiffstats
path: root/libs/ui/Region.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ui/Region.cpp')
-rw-r--r--libs/ui/Region.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp
index 623f8ed..e5abcf5 100644
--- a/libs/ui/Region.cpp
+++ b/libs/ui/Region.cpp
@@ -715,14 +715,17 @@ void Region::translate(Region& dst, const Region& reg, int dx, int dy)
// ----------------------------------------------------------------------------
-size_t Region::getSize() const {
+size_t Region::getFlattenedSize() const {
return mStorage.size() * sizeof(Rect);
}
-status_t Region::flatten(void* buffer) const {
+status_t Region::flatten(void* buffer, size_t size) const {
#if VALIDATE_REGIONS
validate(*this, "Region::flatten");
#endif
+ if (size < mStorage.size() * sizeof(Rect)) {
+ return NO_MEMORY;
+ }
Rect* rects = reinterpret_cast<Rect*>(buffer);
memcpy(rects, mStorage.array(), mStorage.size() * sizeof(Rect));
return NO_ERROR;