summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-07-02 16:25:06 +0000
committerNicholas Clark <nick@ccl4.org>2005-07-02 16:25:06 +0000
commit49c04cc736aa68243fdda5fe18290db6911dd403 (patch)
treec0f94e321534e0e147a0d9f99a050b1f3344ff4e /sv.c
parent8878f897ac9d9fa8a7f8ad4a14238341d36a293c (diff)
downloadperl-49c04cc736aa68243fdda5fe18290db6911dd403.tar.gz
Copying the first parameter in the macro del_body seems to reduce
code size. Presumably an expression is no longer evaluated twice. p4raw-id: //depot/perl@25053
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sv.c b/sv.c
index d416b1bda1..83c2d4e610 100644
--- a/sv.c
+++ b/sv.c
@@ -1127,9 +1127,10 @@ S_new_body(pTHX_ void **arena_root, void **root, size_t size)
#define del_body(thing, root) \
STMT_START { \
+ void **thing_copy = (void **)thing; \
LOCK_SV_MUTEX; \
- *(void **)thing = *root; \
- *root = (void*)thing; \
+ *thing_copy = *root; \
+ *root = (void*)thing_copy; \
UNLOCK_SV_MUTEX; \
} STMT_END