diff options
author | 2015-04-14 18:06:48 +0000 | |
---|---|---|
committer | 2015-04-14 18:06:48 +0000 | |
commit | ddabf640292041fefca86609ee23f4803107cbb2 (patch) | |
tree | 8cb7b0efddab3cad99e3dd2f269cb27edff9daef /libs/ui/Region.cpp | |
parent | c200d20e32af042e92d03574aaededf6d81d27e0 (diff) | |
parent | a3f8c2aaf1bb82b436306f65b86d25d4ea955d4d (diff) |
am a3f8c2aa: Merge "Fix a memory corruption issue when vector resize"
* commit 'a3f8c2aaf1bb82b436306f65b86d25d4ea955d4d':
Fix a memory corruption issue when vector resize
Diffstat (limited to 'libs/ui/Region.cpp')
-rw-r--r-- | libs/ui/Region.cpp | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp index 91fa21626f..53ef193713 100644 --- a/libs/ui/Region.cpp +++ b/libs/ui/Region.cpp @@ -130,43 +130,42 @@ static void reverseRectsResolvingJunctions(const Rect* begin, const Rect* end, // prevIndex can't be -1 here because if endLastSpan is set to a // value greater than -1 (allowing the loop to execute), // beginLastSpan (and therefore prevIndex) will also be increased - const Rect* prev = &dst[static_cast<size_t>(prevIndex)]; - + const Rect prev = dst[static_cast<size_t>(prevIndex)]; if (spanDirection == direction_RTL) { // iterating over previous span RTL, quit if it's too far left - if (prev->right <= left) break; + if (prev.right <= left) break; - if (prev->right > left && prev->right < right) { - dst.add(Rect(prev->right, top, right, bottom)); - right = prev->right; + if (prev.right > left && prev.right < right) { + dst.add(Rect(prev.right, top, right, bottom)); + right = prev.right; } - if (prev->left > left && prev->left < right) { - dst.add(Rect(prev->left, top, right, bottom)); - right = prev->left; + if (prev.left > left && prev.left < right) { + dst.add(Rect(prev.left, top, right, bottom)); + right = prev.left; } // if an entry in the previous span is too far right, nothing further left in the // current span will need it - if (prev->left >= right) { + if (prev.left >= right) { beginLastSpan = prevIndex; } } else { // iterating over previous span LTR, quit if it's too far right - if (prev->left >= right) break; + if (prev.left >= right) break; - if (prev->left > left && prev->left < right) { - dst.add(Rect(left, top, prev->left, bottom)); - left = prev->left; + if (prev.left > left && prev.left < right) { + dst.add(Rect(left, top, prev.left, bottom)); + left = prev.left; } - if (prev->right > left && prev->right < right) { - dst.add(Rect(left, top, prev->right, bottom)); - left = prev->right; + if (prev.right > left && prev.right < right) { + dst.add(Rect(left, top, prev.right, bottom)); + left = prev.right; } // if an entry in the previous span is too far left, nothing further right in the // current span will need it - if (prev->right <= left) { + if (prev.right <= left) { beginLastSpan = prevIndex; } } |