|
@@ -11,7 +11,12 @@ typedef struct RefCounted {
|
|
|
} RefCounted;
|
|
} RefCounted;
|
|
|
|
|
|
|
|
#define PK_INCREF(obj) (obj)->rc.count++
|
|
#define PK_INCREF(obj) (obj)->rc.count++
|
|
|
-#define PK_DECREF(obj) if (--(obj)->rc.count == 0) (obj)->rc.dtor(obj)
|
|
|
|
|
|
|
+#define PK_DECREF(obj) do { \
|
|
|
|
|
+ if(--(obj)->rc.count == 0) { \
|
|
|
|
|
+ (obj)->rc.dtor(obj); \
|
|
|
|
|
+ free(obj); \
|
|
|
|
|
+ } \
|
|
|
|
|
+} while(0)
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
#ifdef __cplusplus
|
|
|
}
|
|
}
|