added acogc_object_type function which returns the AcogcFactory
authorChristian Thaeter <ct@pipapo.org>
Sat, 18 Nov 2006 08:29:33 +0000 (09:29 +0100)
committerChristian Thaeter <ct@pipapo.org>
Sat, 18 Nov 2006 08:29:33 +0000 (09:29 +0100)
lib/acogc.h

index c771ab6..149d33f 100644 (file)
@@ -294,6 +294,18 @@ acogc_object_from_memory (const void * const self)
 acogc_mark_result
 acogc_object_markreally (AcogcObject object);
 
+/*
+  factories can be used to identify the type of a object
+ */
+static inline AcogcFactory
+acogc_object_type (const void * m)
+{
+  AcogcObject o = acogc_object_from_memory (m);
+  REQUIRE((o->state >= ACOGC_STATE_START && o->state < o->factory->root->state) || o->state <= ACOGC_STATE_UNCOLLECTABLE,
+          "object not alive");
+  return o -> factory;
+}
+
 static inline acogc_mark_result
 acogc_object_mark (void * o)
 {