Closed Bug 422265 Opened 16 years ago Closed 16 years ago

ActionMonkey C headers are not namespace-clean

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: jimb, Unassigned)

Details

At the moment, the Mozilla sources use some C header files from ActionMonkey that in turn #include "MMgc.h", the Tamarin garbage collector's header file.  For example, there are several uses of jscntxt.h, which #includes MMgc.h.

MMgc.h tests a number of preprocessor symbols that are #defined or not by the Tamarin configuration scripts (''SCRIPT_DEBUGGER'', ''GCHEAP_LOCK'', and so on), and #defines a number of symbols itself, most of which are not namespace-clean.  That is, there is no convention to ensure that these tests and #definitions don't conflict with other definitions from other parts of Mozilla.

All the preprocessor symbols and C identifiers that MMgc.h tests, defines, or declares should have some appropriate prefix, like MMGC_ or MM.
Just thinking out loud, I see several ways to fix it:

1. Fix MMgc.h to be namespace-clean.

2. Fix the Mozilla tree to avoid using "friendly" header files like jscntxt.h.

3. Create a new "facade" header file for GC that is namespace-clean, preferably with an API that could be implemented by various GCs.  (Bug 411563 comment 2 also asks for such an API.)
Concerning option #3, Jason Evans, Benjamin Smedberg, and I have been working on an API:

  http://wiki.mozilla.org/GC_API
Mass-WONTFIXing ActionMonkey bugs.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.