summaryrefslogtreecommitdiffstats
path: root/layout/base/ArenaObjectID.h
diff options
context:
space:
mode:
Diffstat (limited to 'layout/base/ArenaObjectID.h')
-rw-r--r--layout/base/ArenaObjectID.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/layout/base/ArenaObjectID.h b/layout/base/ArenaObjectID.h
new file mode 100644
index 000000000..db8dfe872
--- /dev/null
+++ b/layout/base/ArenaObjectID.h
@@ -0,0 +1,36 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* enum type for objects that can be allocated by an nsPresArena */
+
+#ifndef mozilla_ArenaObjectID_h
+#define mozilla_ArenaObjectID_h
+
+#include "nsQueryFrame.h"
+
+namespace mozilla {
+
+enum ArenaObjectID {
+ eArenaObjectID_DummyBeforeFirstObjectID = nsQueryFrame::NON_FRAME_MARKER - 1,
+
+#define PRES_ARENA_OBJECT(name_) \
+ eArenaObjectID_##name_,
+#include "nsPresArenaObjectList.h"
+#undef PRES_ARENA_OBJECT
+
+ /**
+ * The PresArena implementation uses this bit to distinguish objects
+ * allocated by size from objects allocated by type ID (that is, frames
+ * using AllocateByFrameID and other objects using AllocateByObjectID).
+ * It should not collide with any Object ID (above) or frame ID (in
+ * nsQueryFrame.h). It is not 0x80000000 to avoid the question of
+ * whether enumeration constants are signed.
+ */
+ eArenaObjectID_NON_OBJECT_MARKER = 0x40000000
+};
+
+};
+
+#endif