* don't leak the rect data in case of failed realloc()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22006 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -471,9 +471,15 @@ BRegion::_SetSize(long newSize)
|
|||||||
if (fData == &fBounds) {
|
if (fData == &fBounds) {
|
||||||
fData = (clipping_rect*)malloc(newSize * sizeof(clipping_rect));
|
fData = (clipping_rect*)malloc(newSize * sizeof(clipping_rect));
|
||||||
fData[0] = fBounds;
|
fData[0] = fBounds;
|
||||||
} else if (fData)
|
} else if (fData) {
|
||||||
fData = (clipping_rect*)realloc(fData, newSize * sizeof(clipping_rect));
|
clipping_rect* resizedData = (clipping_rect*)realloc(fData,
|
||||||
else
|
newSize * sizeof(clipping_rect));
|
||||||
|
if (!resizedData) {
|
||||||
|
free(fData);
|
||||||
|
fData = NULL;
|
||||||
|
} else
|
||||||
|
fData = resizedData;
|
||||||
|
} else
|
||||||
fData = (clipping_rect*)malloc(newSize * sizeof(clipping_rect));
|
fData = (clipping_rect*)malloc(newSize * sizeof(clipping_rect));
|
||||||
} else {
|
} else {
|
||||||
// just an empty region, but no error
|
// just an empty region, but no error
|
||||||
|
|||||||
Reference in New Issue
Block a user