summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-25 15:53:23 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-25 15:53:23 +0200
commit3617701208c6fd63386442d2d107d37ff7d22041 (patch)
treeb3261a5fe271510d493cdf0c7dd1987744da49fb
parent12baa940dd214046902a0d7815f24cfad989fe79 (diff)
include: fix the embedded type definitions in memory_object.defs
In order to use MIG translation functions to lookup memory objects, preprocessor macros have been introduced into the definition of memory_object_t in 50cc5152. The procedure definitions contain inlined type definitions in order to change the type of the argument in question (i.e. to make it polymorphic). The inline definitions however lack the destructor function, leading to reference leaks when a reference is acquired in the intran function. * include/mach/memory_object.defs: Add the destructor functions to the inlined type definitions.
-rw-r--r--include/mach/memory_object.defs12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/mach/memory_object.defs b/include/mach/memory_object.defs
index 0ed8dbc..1ae36aa 100644
--- a/include/mach/memory_object.defs
+++ b/include/mach/memory_object.defs
@@ -93,6 +93,9 @@ simpleroutine memory_object_terminate(
#ifdef MEMORY_OBJECT_INTRAN
intran: MEMORY_OBJECT_INTRAN
#endif
+#ifdef MEMORY_OBJECT_DESTRUCTOR
+ destructor: MEMORY_OBJECT_DESTRUCTOR
+#endif
;
#if SEQNOS
msgseqno seqno : mach_port_seqno_t;
@@ -233,6 +236,9 @@ simpleroutine memory_object_lock_completed(
#ifdef MEMORY_OBJECT_INTRAN
intran: MEMORY_OBJECT_INTRAN
#endif
+#ifdef MEMORY_OBJECT_DESTRUCTOR
+ destructor: MEMORY_OBJECT_DESTRUCTOR
+#endif
;
#if SEQNOS
msgseqno seqno : mach_port_seqno_t;
@@ -268,6 +274,9 @@ simpleroutine memory_object_supply_completed(
#ifdef MEMORY_OBJECT_INTRAN
intran: MEMORY_OBJECT_INTRAN
#endif
+#ifdef MEMORY_OBJECT_DESTRUCTOR
+ destructor: MEMORY_OBJECT_DESTRUCTOR
+#endif
;
#if SEQNOS
msgseqno seqno : mach_port_seqno_t;
@@ -318,6 +327,9 @@ simpleroutine memory_object_change_completed(
#ifdef MEMORY_OBJECT_INTRAN
intran: MEMORY_OBJECT_INTRAN
#endif
+#ifdef MEMORY_OBJECT_DESTRUCTOR
+ destructor: MEMORY_OBJECT_DESTRUCTOR
+#endif
;
#if SEQNOS
msgseqno seqno : mach_port_seqno_t;