aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkArenaAlloc.h
Commit message (Collapse)AuthorAge
* Fix bogus math in object allocation.Gravatar Herb Derby2017-08-15
| | | | | | | | | | | | | | | | When a size_t is convert from a very large number to ptrdiff_t, it becomes negative causing the existing block to be used instead of allocating a new block. Remove broken test from last try. TBR=bungeman@google.com BUG=chromium:744109 Change-Id: Ifc81bb8f416d64f640730c66bce56a8e4c677173 Reviewed-on: https://skia-review.googlesource.com/35080 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Fix bogus math in object allocation."Gravatar Florin Malita2017-08-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0bc4d60fe0a1ceae6dde0103c3fdf78ee1673ffa. Reason for revert: https://chromium-swarm.appspot.com/task?id=38007b6df51fef10&refresh=10 terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Caught signal 6 [Aborted], was running: 8888 image scanline_kNonNative_premul interlaced3.png unit test ArenaAllocReallyBigAlloc unit test ClampRange 565 image scaled_codec_premul_0.200 interlaced3.png_0.200 unit test ClipStack Likely culprit: unit test ArenaAllocReallyBigAlloc Stack trace: /mnt/pd0/s/w/ir/out/Debug/dm(+0x2381c1) [0x567aa1c1] linux-gate.so.1(__kernel_sigreturn+0) [0xf770cca0] linux-gate.so.1(__kernel_vsyscall+0x9) [0xf770cc89] /lib/i386-linux-gnu/libc.so.6(gsignal+0xb0) [0xf7027dc0] /lib/i386-linux-gnu/libc.so.6(abort+0x157) [0xf7029287] /usr/lib/i386-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x16f) [0xf729d2ff] /usr/lib/i386-linux-gnu/libstdc++.so.6(+0x71ea4) [0xf729aea4] /usr/lib/i386-linux-gnu/libstdc++.so.6(+0x71f1d) [0xf729af1d] /usr/lib/i386-linux-gnu/libstdc++.so.6(__cxa_rethrow+0) [0xf729b1d0] /usr/lib/i386-linux-gnu/libstdc++.so.6(+0x727ff) [0xf729b7ff] /usr/lib/i386-linux-gnu/libstdc++.so.6(_Znaj+0x18) [0xf729b898] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN12SkArenaAlloc11ensureSpaceEjj+0xa0) [0x56f113a6] /mnt/pd0/s/w/ir/out/Debug/dm(+0x3c2462) [0x56934462] /mnt/pd0/s/w/ir/out/Debug/dm(+0x239acb) [0x567abacb] /mnt/pd0/s/w/ir/out/Debug/dm(+0x239bdc) [0x567abbdc] /mnt/pd0/s/w/ir/out/Debug/dm(+0xa6417b) [0x56fd617b] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNKSt8functionIFvvEEclEv+0x20) [0x56f10504] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN12SkThreadPool4LoopEPv+0x298) [0x56f10bdb] /mnt/pd0/s/w/ir/out/Debug/dm(+0xb39700) [0x570ab700] /lib/i386-linux-gnu/libpthread.so.0(+0x627a) [0xf76df27a] /lib/i386-linux-gnu/libc.so.6(clone+0x66) [0xf70e3b56] Aborted Command exited with code 134 Original change's description: > Fix bogus math in object allocation. > > When a size_t is convert from a very large number to ptrdiff_t, it > becomes negative causing the existing block to be used instead of > allocating a new block. > > BUG=chromium:744109 > > Change-Id: I0bf98e3fb924851c162f6eca43d29a3f40dc9eaa > Reviewed-on: https://skia-review.googlesource.com/34541 > Reviewed-by: Ben Wagner <bungeman@google.com> > Commit-Queue: Herb Derby <herb@google.com> TBR=bungeman@google.com,herb@google.com Change-Id: I8ce2b45d13178395247dabd7af6853354399721c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:744109 Reviewed-on: https://skia-review.googlesource.com/35000 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Fix bogus math in object allocation.Gravatar Herb Derby2017-08-15
| | | | | | | | | | | | | When a size_t is convert from a very large number to ptrdiff_t, it becomes negative causing the existing block to be used instead of allocating a new block. BUG=chromium:744109 Change-Id: I0bf98e3fb924851c162f6eca43d29a3f40dc9eaa Reviewed-on: https://skia-review.googlesource.com/34541 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Control crash ArenaAlloc for unsatisfiable requests.Gravatar Ben Wagner2017-07-24
| | | | | | | | | BUG=chromium:747043 Change-Id: I24b757d75098a1125dcdf908a3aeffe98b16e66d Reviewed-on: https://skia-review.googlesource.com/26372 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkSTArenaAllocGravatar Florin Malita2017-05-24
| | | | | | | | | Syntactic sugar, gets rid of some boilerplate. Change-Id: Ibdb28b7a8f1d5e4a4e18c12d423b987d7194e340 Reviewed-on: https://skia-review.googlesource.com/17837 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* inline SkArenaAlloc::allocObject()Gravatar Mike Klein2017-05-24
| | | | | | | | | Call overhead does appear to be showing up on our profiles. Change-Id: If3875a8972769f45282e0eb1d4aef6324cd56878 Reviewed-on: https://skia-review.googlesource.com/17833 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add instrumentation into SkArenaAlloc.Gravatar Herb Derby2017-04-27
| | | | | | | | | | | | Add a parameter to the constructor that will have the dtor print out stats for setting the initial parameters. Clean up: Move some function so they are in the same order as .h Change-Id: I19d87dcc9c3b8dcc3e1d4f2ff078b78bbc490d92 Reviewed-on: https://skia-review.googlesource.com/14600 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Remove dangerous constructor from SkArenaAllocGravatar Herb Derby2017-04-14
| | | | | | | | | | | Make the constructors for SkArenaAlloc unambiguous. TBR=mtklein@google.com Change-Id: Iaa6419574e78e17bf746f5f9bcdf99c9d6c9d727 Reviewed-on: https://skia-review.googlesource.com/13540 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Use Fibonacci instead of 2^n for block growth.Gravatar Herb Derby2017-03-08
| | | | | | | | | | | | Chrome on android showed an increase of 5% memory use when 2^n block growth was introduced. Use Fibonacci instead. BUG=chromium:699130 Change-Id: I228d66385c63d487e72db46356f44e9efb5fa0f3 Reviewed-on: https://skia-review.googlesource.com/9447 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Use an exponential growth strategy for extra blocks.Gravatar Herb Derby2017-03-03
| | | | | | | Change-Id: I4137cb60b79184456aa71d18cb31a52c27bd8792 Reviewed-on: https://skia-review.googlesource.com/9260 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Switch from size_t to uint32_t to represent constraints better.Gravatar Herb Derby2017-02-17
| | | | | | | | | | TBR=mtklein@google.com Change-Id: Ib7400f2a3e2af0d8976998e5857c4d2c9cb6dbd0 Reviewed-on: https://skia-review.googlesource.com/7614 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Add sk_sp make variant to SkArenaAlloc.Gravatar Herb Derby2017-02-06
| | | | | | | | | | R=bungeman@google.com BUG=skia: Change-Id: Iec588cb6946f0230ff3d3ec46499c365aa6b8d09 Reviewed-on: https://skia-review.googlesource.com/8067 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Simplify Footers in SkArenaAlloc to 64-bit values using pointers.Gravatar Herb Derby2017-01-25
| | | | | | | | | TBR=mtklein@google.com Change-Id: I72c6cf6857b2bb00f4259cc9c4de2d51d454e6ab Reviewed-on: https://skia-review.googlesource.com/7582 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Make the footer big to handle bug 684061.Gravatar Herb Derby2017-01-24
| | | | | | | | | | | | R=mtklein@google.com BUG=chromium:684061 Change-Id: I210ca93e00ec6fa5d166c0fde5cdcff0f60c26ca Reviewed-on: https://skia-review.googlesource.com/7450 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix comparison that overflows for addresses near uint max.Gravatar Herb Derby2017-01-23
| | | | | | | | | | | | - Fix Assert TBR=mtklein@google.com BUG=chromium:683578 Change-Id: Iba503d1febace367c71f79a3b9accc0ec3e50f11 Reviewed-on: https://skia-review.googlesource.com/7418 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Fix comparison that overflows for addresses near uint max."Gravatar Ethan Nicholas2017-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit db8b8376b09cec9656b0ab864413b7911d81a84c. Reason for revert: Assertion failure, see https://luci-milo.appspot.com/swarming/task/33e5ae4d2bb25210/steps/dm/0/stdout Original change's description: > Fix comparison that overflows for addresses near uint max. > > BUG=chromium:683578 > > Change-Id: I3f9b79eeeba3c68cccb72bd6423811c8ff8f2067 > Reviewed-on: https://skia-review.googlesource.com/7410 > Commit-Queue: Herb Derby <herb@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:683578 Change-Id: I198ea4c7209d060d0d15dfa3f6e555fa06e1a632 Reviewed-on: https://skia-review.googlesource.com/7415 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
* Fix comparison that overflows for addresses near uint max.Gravatar Herb Derby2017-01-23
| | | | | | | | | | BUG=chromium:683578 Change-Id: I3f9b79eeeba3c68cccb72bd6423811c8ff8f2067 Reviewed-on: https://skia-review.googlesource.com/7410 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Update SkTDict to use SkArenaAlloc.Gravatar Herb Derby2017-01-23
| | | | | | | Change-Id: I7ac33faa59bcad25b0580193af965a8525eb18e7 Reviewed-on: https://skia-review.googlesource.com/7360 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix reset and deleting behavior.Gravatar Herb Derby2017-01-19
| | | | | | | | | | * Reset the Arena state. * Call all the dtors before deleting the blocks. Change-Id: I6d90463966ac7bf9f0a4fda229f67d508c86bebb Reviewed-on: https://skia-review.googlesource.com/7308 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Fix reset and deleting behavior."Gravatar Herb Derby2017-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 412a86d014783be99a7a9a0fae407791b95806e8. Reason for revert: <INSERT REASONING HERE> Original change's description: > Fix reset and deleting behavior. > > * Reset the Arena state. > * Call all the dtors before deleting the blocks. > > TBR=mtklein@google.com > > Change-Id: Iac320fec16e572cc9a6184c1f580089ab720f036 > Reviewed-on: https://skia-review.googlesource.com/7221 > Reviewed-by: Herb Derby <herb@google.com> > Commit-Queue: Herb Derby <herb@google.com> > TBR=herb@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I4f4d34e0190a60d418f11326a9a9688d7487b8d8 Reviewed-on: https://skia-review.googlesource.com/7261 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Fix reset and deleting behavior.Gravatar Herb Derby2017-01-18
| | | | | | | | | | | | * Reset the Arena state. * Call all the dtors before deleting the blocks. TBR=mtklein@google.com Change-Id: Iac320fec16e572cc9a6184c1f580089ab720f036 Reviewed-on: https://skia-review.googlesource.com/7221 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Remove SkFallbackAlloc and SkFixedAlloc.Gravatar Herb Derby2017-01-16
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN;skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN TBR=reed@google.com Change-Id: I1000dc9ed8ad65b249798759d9af99f47fc237d2 Reviewed-on: https://skia-review.googlesource.com/6809 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>