… | |
… | |
78 | |
78 | |
79 | BOOT: |
79 | BOOT: |
80 | guard_stash = gv_stashpv ("Guard", 1); |
80 | guard_stash = gv_stashpv ("Guard", 1); |
81 | |
81 | |
82 | void |
82 | void |
83 | CLONE (...) |
|
|
84 | PROTOTYPE: @ |
|
|
85 | CODE: |
|
|
86 | guard_stash = gv_stashpv ("Guard", 1); |
|
|
87 | |
|
|
88 | void |
|
|
89 | scope_guard (SV *block) |
83 | scope_guard (SV *block) |
90 | PROTOTYPE: & |
84 | PROTOTYPE: & |
91 | CODE: |
85 | CODE: |
92 | LEAVE; /* unfortunately, perl sandwiches XS calls into ENTER/LEAVE */ |
86 | LEAVE; /* unfortunately, perl sandwiches XS calls into ENTER/LEAVE */ |
93 | SAVEDESTRUCTOR_X (scope_guard_cb, (void *)SvREFCNT_inc (guard_get_cv (aTHX_ block))); |
87 | SAVEDESTRUCTOR_X (scope_guard_cb, (void *)SvREFCNT_inc (guard_get_cv (aTHX_ block))); |