summaryrefslogtreecommitdiff
path: root/scope.h
diff options
context:
space:
mode:
Diffstat (limited to 'scope.h')
-rw-r--r--scope.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/scope.h b/scope.h
index 340ca993ce..01fc083804 100644
--- a/scope.h
+++ b/scope.h
@@ -82,16 +82,13 @@
#define SAVEDELETE(h,k,l) \
save_delete(SOFT_CAST(HV*)(h), SOFT_CAST(char*)(k), (I32)(l))
#ifdef PERL_OBJECT
-#define CALLDESTRUCTOR this->*SSPOPDPTR
-#define SAVEDESTRUCTOR(f,p) \
- save_destructor((DESTRUCTORFUNC)(FUNC_NAME_TO_PTR(f)), \
- SOFT_CAST(void*)(p))
+#define CALLDESTRUCTOR(p) this->*SSPOPDPTR(p)
#else
-#define CALLDESTRUCTOR *SSPOPDPTR
+#define CALLDESTRUCTOR(p) (*SSPOPDPTR)(aTHX_ p)
+#endif
#define SAVEDESTRUCTOR(f,p) \
- save_destructor(SOFT_CAST(void(*)(void*))(FUNC_NAME_TO_PTR(f)), \
+ save_destructor((DESTRUCTORFUNC_t)(FUNC_NAME_TO_PTR(f)), \
SOFT_CAST(void*)(p))
-#endif
#define SAVESTACK_POS() \
STMT_START { \