Commit Graph

46 Commits

Author SHA1 Message Date
Andrew McCreight
f3d273c448 Bug 1295695 - Add maybe_pod_* methods to InfallibleAllocPolicy. r=glandium
Bug 1207519 added maybe_pod_* methods to the allocation policy
classes, but did not add them to InfallibleAllocPolicy.

I think the idea of these methods is that the callers are explicitly
opting into fallible behavior, so they will deal with any errors that
occur. For instance, in js::HashTable, this is used to try to shrink
the hash table when there are a lot of unused entries. If the shrink
fails, it just continues to use the existing block of memory.

However, having fallible methods in a supposedly infallible class is
weird, so for now, just use the infallible version.

MozReview-Commit-ID: 97D66Z4oLfl
2016-08-16 11:09:05 -07:00
Andrew McCreight
6a2f9f9e4e Bug 1295688 - InfallibleAllocPolicy should crash on overflow. r=glandium
Code that uses InfallibleAllocPolicy presumably wants for operations
to always succeed. However, Vector and HashTable can end up detecting
that growing the data structure will fail due to integer overflow, and
then will call reportAllocOverflow() and fail. I think these cases
should crash.

In addition, pod_malloc and pod_realloc should crash rather than
returning NULL when they detect overflow.

This calls mozalloc_abort rather than MOZ_CRASH directly to avoid
circular #includes, because Assertions.h includes nsTraceRefcnt.h
which includes nscore.h which includes mozalloc.h.

MozReview-Commit-ID: 1g99BXLceQI
2016-08-16 10:56:14 -07:00
Bill McCloskey
2d5b42bb8d Bug 1262671 - Introduce MFBT BufferList class (r=froydnj) 2016-05-27 09:57:40 -07:00
Mike Hommey
314515f959 Bug 1269171 - Change how mozalloc.h is hooked in STL wrappers. r=froydnj
Since the introduction of the STL wrappers, they have included
mozalloc.h, and multiple times, we've hit header reentrancy problems,
and worked around them as best as we could.

Taking a step back, all mozalloc.h does is:
- declare moz_* allocator functions.
- define inline implementations of various operator new/delete variants.

The first only requires the functions to be declared before they are used,
so mozalloc.h only needs to be included before anything that would use
those functions.

The second doesn't actually require a specific order, as long as the
declaration for those functions comes before their use, and they are
either declared in <new> or implicitly by the C++ compiler.

So all in all, it doesn't matter that mozalloc.h is included before the
wrapped STL headers. What matters is that it's included when STL headers
are included. So arrange things such that mozalloc.h is included after
the first wrapped STL header is fully preprocessed (and all its includes
have been included).
2016-05-22 08:32:40 +09:00
Nicholas Nethercote
26b6e79d96 Bug 1267550 (part 2) - Rename MOZ_WARN_UNUSED_RESULT as MOZ_MUST_USE. r=froydnj.
It's an annotation that is used a lot, and should be used even more, so a
shorter name is better.

MozReview-Commit-ID: 1VS4Dney4WX
2016-04-27 14:16:50 +10:00
Jim Blandy
a3c7324c83 Bug 1145051: Don't include xpcom-config.h from mozalloc.h; it's unused. r=glandium 2015-03-19 01:03:05 -07:00
Jim Blandy
2bb4503427 Bug 1145051: Use MOZ_WARN_UNUSED_RESULT instead of NS_WARN_UNUSED_RESULT. r=glandium 2015-03-19 00:46:40 -07:00
Jim Blandy
650a964cf1 Bug 1145051: Replace uses of NS_ATTR_MALLOC with new MOZ_ALLOCATOR from mfbt/Attributes.h. r=glandium 2015-03-18 23:56:08 -07:00
ISHIKAWA, Chiaki
fdcc61d1d2 Bug 1147248 - GCC 4.9 needs this patch to use address sanitizer. r=glandium 2015-04-10 15:05:00 +02:00
Mike Hommey
f27efae645 Bug 1138293 - Remove moz_malloc/moz_free/moz_realloc/moz_calloc. r=njn
We need to use _impl variants within mozalloc.h when they are defined because
of how mozglue.dll is linked on Windows, where using malloc/free would use
the symbols from the MSVCRT instead of ours.
2015-03-31 12:32:49 +09:00
Mike Hommey
118a0bae88 Bug 1142434 - Remove moz_memalign/moz_valloc, nothing uses them. r=njn 2015-03-31 12:26:45 +09:00
Mike Hommey
2367cde41a Bug 1142434 - Remove moz_strdup/moz_strndup, nothing uses them. r=njn 2015-03-31 12:26:45 +09:00
Mike Hommey
d52f1bb3cd Bug 868814 - Fold mozalloc library into mozglue. r=njn 2015-03-10 10:01:52 +09:00
Masatoshi Kimura
bae0a32948 Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Nicholas Nethercote
359fa156fe Bug 1102525 (part 1) - Add InfallibleAllocPolicy to mozalloc. r=glandium. 2014-12-08 14:45:10 -08:00
Jim Chen
34862b7560 Bug 1067018 - Always specify throw() for nothrow placement new/delete; r=glandium 2014-09-26 15:45:45 -04:00
Ehsan Akhgari
860f2c1f29 Bug 969757 - Remove the dead code in our tree which pretends to support OS/2; r=roc,mcmanus,gps,jorendorf,bsmedberg sr=bsmedberg 2014-02-10 17:57:01 -05:00
Bill McCloskey
9a83de538c Bug 863116 - MOZ_ALWAYS_INLINE should not inline in debug builds (r=Waldo) 2013-04-19 10:55:34 -07:00
Rafael Ávila de Espíndola
339655a88d Bug 839338 - ASan alloc/dealloc mismatch in _M_create_nodes/_M_destroy_nodes. r=waldo. 2013-02-12 08:30:16 -05:00
Jacek Szpot
8612385339 Bug 800106: Replace more NS_ALWAYS_INLINEs with MOZ_ALWAYS_INLINE; r=ehsan 2012-10-13 17:52:10 +02:00
Ehsan Akhgari
223ba0a5c5 Backout changeset 0f0797cdb55a (bug 800106) because of Kraken regressions on Windows XP 2012-10-15 14:19:55 -04:00
Jacek Szpot
ad76787332 Bug 800106: replace NS_ALWAYS_INLINE with MOZ_ALWAYS_INLINE; r=ehsan 2012-10-13 17:52:10 +02:00
Gervase Markham
cb6a072c2a Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Benjamin Smedberg
d25f1e6e2b Bug 737164 prerequisite - move mozilla::fallible_t to its own header so that everyone can reference it reasonable, r=cjones 2012-05-08 12:30:37 -04:00
Mike Hommey
f9e07dcd00 Bug 738176 - Completely disable jemalloc when it's supposed to be disabled on OSX, and cleanup exposed APIs. r=jlebar,r=khuey 2012-04-05 09:20:53 +02:00
Nicholas Nethercote
c1dd090b4c Bug 715453 - Remove computedSize from nsMallocSizeOfFun. r=jlebar,bhackett. 2012-01-25 00:52:51 -08:00
Ms2ger
6a752be079 Bug 717441 - Backout bug 715093 / changeset d5f3e38021fd for Fennec crashes. 2012-01-12 21:35:48 +01:00
Ms2ger
3a4e490266 Bug 715093 - Get rid of MOZALLOC_INLINE in favour of MOZ_ALWAYS_INLINE; r=glandium 2012-01-11 09:22:16 +01:00
Nicholas Nethercote
c0681f567c Bug 698968 - Add mallocSizeOf functions and start using them. r=jlebar,bhackett,jfkthame, sr=bz. 2011-11-27 19:03:14 -08:00
Jeff Muizelaar
c84fb09a0a Bug 695171. Make our operator new throw std::bad_alloc. r=cjones
If new doesn't throw bad_alloc the compiler emits a null check after to avoid
calling the constructor. http://llvm.org/bugs/show_bug.cgi?id=10895

Adding throw(std::bad_alloc) shaves 57KB of .text off a gcc mac build and 61KB off
a clang build.
2011-10-18 14:19:23 -04:00
Justin Lebar
cdc3458bc4 Bug 682437 - Add memory reporter for History::mObservers. r=bz 2011-09-14 17:37:45 -07:00
Paul Biggar
d8519ed4e6 Bug 414946 (part 1): Fix jemalloc on Mac, but leave disabled (r=pavlov)
Overwrite the OSX default zone allocator, taking into account the malloc_zone_t
version (supported versions are 3, 6, and 8) for Leopard, Snow Leopard and
Lion. jemalloc can be dynamically disabled for unknown malloc_zone_t versions,
for OSX 10.8 and beyond.

The changeset does not enable jemalloc, to allow for easy disabling if there's
a problem. It will be enabled in the next changeset.

This should be a 15-20% improvement in memory usage.
2011-05-21 20:27:00 -07:00
Mike Hommey
05f91655a5 Bug 662224 - Define NS_ATTR_MALLOC and NS_WARN_UNUSED_RESULT in xpcom-config.h, and include it from mozalloc.h. r=bsmedberg 2011-06-07 03:09:46 +02:00
Ryan VanderMeulen
c219122054 Bug 578546 - Fix MSVC warning spam by adjusting ifdef to include MSVC. r=cjones a=benjamin 2010-11-16 10:19:23 +01:00
Chris Jones
2f8662485b Bug 550611: Make nsTArray optionally infallible. sr=bsmedberg a=blocking 2010-11-08 20:48:59 -06:00
Saint Wesonga
551396d11c Bug 570553 - mozalloc.h:208:1: warning: C++ style comments are not allowed in ISO C90. r=vlad 2010-06-16 18:54:25 +02:00
Vladimir Vukicevic
72a0025709 b=566447; add presshell memory reporter; r=bz 2010-05-31 19:19:35 -07:00
Brad Lassey
414fcaa685 bug 559263 - implement jemalloc for android r=vlad 2010-05-25 11:28:14 -04:00
Daniel Holbert
0d6d7bc64a Bug 564261: fix build warning about C++ style comment in mozalloc.h. r=cjones 2010-05-11 12:07:33 -07:00
Chris Jones
e590b07136 Bug 550692: Wrap posix_memalign, memalign, and valloc if jemalloc provides them and the OS doesn't. r=bsmedberg 2010-04-21 23:41:40 -05:00
Chris Jones
c4df938d48 Bug 557060: Interpose _Throw() on MSVC and centralize pseudo-throw code in mozalloc. r=ehsan sr=bsmedberg 2010-04-20 15:12:02 -05:00
Chris Jones
4eb274531d Bug 550401: Do the __declspec import/export dance in mozalloc to avoid MSVC warnings. r=bsmedberg 2010-04-08 13:05:02 -05:00
Ginn Chen
6d1162b5ca Bug 550371 mozalloc failed to build on Solaris r=bsmedberg 2010-04-07 14:16:32 +08:00
Jacek Caban
6f60e23795 Bug 441324 - mingw fix 2010-03-06 05:59:00 -06:00
Mats Palmgren
881b6e7b15 Implement std::nothrow variants of operator new/delete. b=550805 r=cjones 2010-03-14 20:56:47 +01:00
Chris Jones
91ed1da469 Bug 441324, part 2: Implement libmozalloc with support for fallible and infallible malloc et al. and |operator new|s. r=bsmedberg 2010-03-03 23:02:56 -06:00