Commit Graph

17 Commits

Author SHA1 Message Date
Mike Hommey
8855262939 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
Mike Hommey
60564d7bff Bug 1269171 - Backout ccff1c4580ab (bug 1270832) because it doesn't actually work properly and blocks upcoming changes. r=froydnj
It turns out that, since we're including <new> before setting
_GLIBCXX_DEBUG, the debug parts of c++config.h are not activated, and
that has an impact of how much of the debug features of the STL are
activated.

In contrast, the upcoming changes to the STL wrappers are avoiding the
include of <new> before _GLIBCXX_DEBUG is set, which in turn breaks the
build because, as we link things that use STL wrappers with things that
don't, they end up with a different state of STL debugging, and have
mismatching symbols.
2016-05-22 08:32:33 +09:00
Nathan Froyd
ba6687453e Bug 1270832 - turn on debug mode for libstdc++ headers; r=glandium 2016-05-11 17:01:39 -04:00
Nathan Froyd
a780b60bd9 Backout fe3f7921e2dc (bug 1270832) because it's going to break Linux static analysis builds; r=me 2016-05-11 10:43:43 -04:00
Nathan Froyd
d795a83fd0 Bug 1270832 - turn on debug mode for libstdc++ headers; r=glandium 2016-05-11 10:42:24 -04:00
Mike Hommey
0995f72a3a Bug 1245076 - Don't include mozalloc.h from the cstdlib wrapper. r=froydnj
Our STL wrappers do various different things, one of which is including
mozalloc.h for infallible operator new. mozalloc.h includes stdlib.h,
which, in libstdc++ >= 6 is now itself a wrapper around cstdlib, which
circles back to our STL wrapper.

But of the things our STL wrappers do, including mozalloc.h is not one
that is necessary for cstdlib. So skip including mozalloc.h in our
cstdlib wrapper.

Additionally, some C++ sources (in media/mtransport) are including
headers in an extern "C" block, which end up including stdlib.h, which
ends up including cstdlib because really, this is all C++, and our
wrapper pre-includes <new> for mozalloc.h, which fails because templates
don't work inside extern "C". So, don't pre-include <new> when we're not
including mozalloc.h.
2016-03-11 17:33:11 +09:00
Makoto Kato
ed0bf31fba Bug 830801 - Part 3. Remove NOMINMAX define from cpp source. r=mshal 2015-08-03 10:07:20 +09:00
Brian Smith
1bb835dbca Bug 1128413, Part 4: Fix warnings in mozilla-config.h and gcc-stl-wrapper.template.h, r=glandium
--HG--
extra : rebase_source : 7ba4fb8a0bd11648908e2790e86ce3bb4517aeb7
2015-02-02 17:35:19 -08:00
Mats Palmgren
922a941b05 Bug 786533 - On Windows, one of the system header files (windef.h) defines 'min' and 'max' as macros which breaks any use of std::min/std::max. Define NOMINMAX before including system header files where needed to avoid defining those macros. r=ehsan 2013-01-15 13:22:03 +01:00
Mike Hommey
b8fba82334 Backout changeset 81c2e2ea2dbf (bug 746794) because of bug 758648 2012-05-25 18:21:03 +02:00
Mike Hommey
e2ba79894d Bug 746794 - Always use the STL wrappers when #pragma visibility is supported. r=ted 2012-05-25 08:31:33 +02:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Ted Mielczarek
00cab35078 bug 685927 - make stl-wrappers more lenient when compiling ObjC with GCC. r=cjones 2011-10-11 11:10:29 -04:00
Chris Jones
ce99d8226f 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
a8c5a07cbb Bug 551254: Allow reviewed+approved STL headers to be included through <foo>. (<algorithm> and <vector> are provisionally in the list because of their use in libpr0n, but need to be reviewed in followup bug 556700 and bug 556701). r=ehsan,ted,zwol 2010-04-02 12:58:11 -05:00
Chris Jones
d17ed699f3 Backed out changeset cec7b12eb5e3 2010-04-02 13:20:22 -05:00
Chris Jones
f4b0fe954c Bug 551254: Allow reviewed+approved STL headers to be included through <foo>. (<algorithm> and <vector> are provisionally in the list because of their use in libpr0n, but need to be reviewed in followup bug 556700 and bug 556701). r=ehsan,ted,zwol 2010-04-02 12:58:11 -05:00