Line data Source code
1 : /* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : /* a list of all types that can be allocated in an nsPresArena, for
7 : preprocessing */
8 :
9 : #ifdef STYLE_STRUCT
10 : #error Sorry nsPresArenaObjectList.h needs to use STYLE_STRUCT!
11 : #endif
12 :
13 : #ifdef PRES_ARENA_OBJECT
14 : #if defined(PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT) || \
15 : defined(PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT)
16 : #error Must not define PRES_ARENA_OBJECT along with \
17 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT or \
18 : PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT.
19 : #endif
20 : #define PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(name_) PRES_ARENA_OBJECT(name_)
21 : #define PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT(name_) PRES_ARENA_OBJECT(name_)
22 : #define DEFINED_PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT
23 : #define DEFINED_PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT
24 : #endif
25 :
26 : #ifndef PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT
27 : #define PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(name_) /* nothing */
28 : #define DEFINED_PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT
29 : #endif
30 :
31 : #ifndef PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT
32 : #define PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT(name_) /* nothing */
33 : #define DEFINED_PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT
34 : #endif
35 :
36 : // Use PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT to mention an nsPresArena-
37 : // allocated object that does not support ArenaRefPtr, and use
38 : // PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT to mention one that does.
39 : //
40 : // All PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT classes must be #included into
41 : // nsPresArena.cpp.
42 : //
43 : // Files including nsPresArenaObjectList.h can either define one or both
44 : // of PRES_ARENA_OBJECT_{WITH,WITHOUT}_ARENAREFPTR_SUPPORT to capture those
45 : // classes separately, or PRES_ARENA_OBJECT to capture all nsPresArena-
46 : // allocated classes.
47 :
48 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsLineBox)
49 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsRuleNode)
50 4 : PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT(GeckoStyleContext)
51 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(DisplayItemData)
52 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsInheritedStyleData)
53 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsResetStyleData)
54 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsConditionalResetStyleData)
55 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsConditionalResetStyleDataEntry)
56 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsFrameList)
57 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(CustomCounterStyle)
58 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(DependentBuiltinCounterStyle)
59 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsCallbackEventRequest)
60 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsIntervalSet_Interval)
61 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(CellData)
62 0 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(BCCellData)
63 :
64 : #define STYLE_STRUCT(name_, checkdata_cb_) \
65 : PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT(nsStyle##name_)
66 : #include "nsStyleStructList.h"
67 : #undef STYLE_STRUCT
68 :
69 : #ifdef DEFINED_PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT
70 : #undef PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT
71 : #undef DEFINED_PRES_ARENA_OBJECT_WITHOUT_ARENAREFPTR_SUPPORT
72 : #endif
73 :
74 : #ifdef DEFINED_PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT
75 : #undef PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT
76 : #undef DEFINED_PRES_ARENA_OBJECT_WITH_ARENAREFPTR_SUPPORT
77 : #endif
|