This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Configure: infnan for mixed-endian double-double
[perl5.git]
/
scope.h
diff --git
a/scope.h
b/scope.h
index
d282ff6
..
822c8ba
100644
(file)
--- a/
scope.h
+++ b/
scope.h
@@
-16,12
+16,12
@@
#define SAVEt_CLEARPADRANGE 1
#define SAVEt_CLEARSV 2
#define SAVEt_REGCONTEXT 3
#define SAVEt_CLEARPADRANGE 1
#define SAVEt_CLEARSV 2
#define SAVEt_REGCONTEXT 3
-/*** SPARE 4 ***/
-#define SAVEt_ARG0_MAX
4
+#define SAVEt_ARG0_MAX
3
/* one arg */
/* one arg */
+/*** SPARE 4 ***/
#define SAVEt_BOOL 5
#define SAVEt_COMPILE_WARNINGS 6
#define SAVEt_COMPPAD 7
#define SAVEt_BOOL 5
#define SAVEt_COMPILE_WARNINGS 6
#define SAVEt_COMPPAD 7
@@
-39,9
+39,7
@@
#define SAVEt_PARSER 19
#define SAVEt_STACK_POS 20
#define SAVEt_READONLY_OFF 21
#define SAVEt_PARSER 19
#define SAVEt_STACK_POS 20
#define SAVEt_READONLY_OFF 21
-#ifdef USE_ITHREADS
-# define SAVEt_COPFILEFREE 22
-#endif
+#define SAVEt_FREEPADNAME 22
#define SAVEt_ARG1_MAX 22
#define SAVEt_ARG1_MAX 22
@@
-66,7
+64,7
@@
#define SAVEt_SAVESWITCHSTACK 39
#define SAVEt_SHARED_PVREF 40
#define SAVEt_SPTR 41
#define SAVEt_SAVESWITCHSTACK 39
#define SAVEt_SHARED_PVREF 40
#define SAVEt_SPTR 41
-/* UNUSED 42 */
+#define SAVEt_STRLEN 42
#define SAVEt_SV 43
#define SAVEt_SVREF 44
#define SAVEt_VPTR 45
#define SAVEt_SV 43
#define SAVEt_SVREF 44
#define SAVEt_VPTR 45
@@
-84,6
+82,7
@@
#define SAVEt_AELEM 52
#define SAVEt_DELETE 53
#define SAVEt_AELEM 52
#define SAVEt_DELETE 53
+
#define SAVEf_SETMAGIC 1
#define SAVEf_KEEPOLDELEM 2
#define SAVEf_SETMAGIC 1
#define SAVEf_KEEPOLDELEM 2
@@
-101,8
+100,8
@@
* macros */
#define SS_MAXPUSH 4
* macros */
#define SS_MAXPUSH 4
-#define SSCHECK(need) if (
PL_savestack_ix + (I32)(need) + SS_MAXPUSH > PL_savestack_max
) savestack_grow()
-#define SSGROW(need) if (
PL_savestack_ix + (I32)(need) + SS_MAXPUSH > PL_savestack_max
) savestack_grow_cnt(need + SS_MAXPUSH)
+#define SSCHECK(need) if (
UNLIKELY(PL_savestack_ix + (I32)(need) + SS_MAXPUSH > PL_savestack_max)
) savestack_grow()
+#define SSGROW(need) if (
UNLIKELY(PL_savestack_ix + (I32)(need) + SS_MAXPUSH > PL_savestack_max)
) savestack_grow_cnt(need + SS_MAXPUSH)
#define SSPUSHINT(i) (PL_savestack[PL_savestack_ix++].any_i32 = (I32)(i))
#define SSPUSHLONG(i) (PL_savestack[PL_savestack_ix++].any_long = (long)(i))
#define SSPUSHBOOL(p) (PL_savestack[PL_savestack_ix++].any_bool = (p))
#define SSPUSHINT(i) (PL_savestack[PL_savestack_ix++].any_i32 = (I32)(i))
#define SSPUSHLONG(i) (PL_savestack[PL_savestack_ix++].any_long = (long)(i))
#define SSPUSHBOOL(p) (PL_savestack[PL_savestack_ix++].any_bool = (p))
@@
-126,14
+125,14
@@
#define dSS_ADD \
I32 ix = PL_savestack_ix; \
#define dSS_ADD \
I32 ix = PL_savestack_ix; \
- ANY *ssp = &PL_savestack[ix]
;
+ ANY *ssp = &PL_savestack[ix]
#define SS_ADD_END(need) \
assert((need) <= SS_MAXPUSH); \
ix += (need); \
PL_savestack_ix = ix; \
assert(ix <= PL_savestack_max); \
#define SS_ADD_END(need) \
assert((need) <= SS_MAXPUSH); \
ix += (need); \
PL_savestack_ix = ix; \
assert(ix <= PL_savestack_max); \
- if (
(ix + SS_MAXPUSH) > PL_savestack_max
) savestack_grow(); \
+ if (
UNLIKELY((ix + SS_MAXPUSH) > PL_savestack_max)
) savestack_grow(); \
assert(PL_savestack_ix + SS_MAXPUSH <= PL_savestack_max);
#define SS_ADD_INT(i) ((ssp++)->any_i32 = (I32)(i))
assert(PL_savestack_ix + SS_MAXPUSH <= PL_savestack_max);
#define SS_ADD_INT(i) ((ssp++)->any_i32 = (I32)(i))
@@
-159,18
+158,18
@@
=head1 Callback Functions
=for apidoc Ams||SAVETMPS
=head1 Callback Functions
=for apidoc Ams||SAVETMPS
-Opening bracket for temporaries on a callback. See C<
FREETMPS
> and
+Opening bracket for temporaries on a callback. See C<
L</FREETMPS>
> and
L<perlcall>.
=for apidoc Ams||FREETMPS
L<perlcall>.
=for apidoc Ams||FREETMPS
-Closing bracket for temporaries on a callback. See C<
SAVETMPS
> and
+Closing bracket for temporaries on a callback. See C<
L</SAVETMPS>
> and
L<perlcall>.
=for apidoc Ams||ENTER
L<perlcall>.
=for apidoc Ams||ENTER
-Opening bracket on a callback. See C<L
EAVE
> and L<perlcall>.
+Opening bracket on a callback. See C<L
</LEAVE>
> and L<perlcall>.
=for apidoc Ams||LEAVE
=for apidoc Ams||LEAVE
-Closing bracket on a callback. See C<
ENTER
> and L<perlcall>.
+Closing bracket on a callback. See C<
L</ENTER>
> and L<perlcall>.
=over
=over
@@
-189,7
+188,8
@@
scope has the given name. Name must be a literal string.
=cut
*/
=cut
*/
-#define SAVETMPS save_int((int*)&PL_tmps_floor), PL_tmps_floor = PL_tmps_ix
+#define SAVETMPS Perl_save_strlen(aTHX_ (STRLEN *)&PL_tmps_floor), \
+ PL_tmps_floor = PL_tmps_ix
#define FREETMPS if (PL_tmps_ix > PL_tmps_floor) free_tmps()
#ifdef DEBUGGING
#define FREETMPS if (PL_tmps_ix > PL_tmps_floor) free_tmps()
#ifdef DEBUGGING
@@
-242,6
+242,7
@@
scope has the given name. Name must be a literal string.
#define SAVEVPTR(s) save_vptr((void*)&(s))
#define SAVEPADSVANDMORTALIZE(s) save_padsv_and_mortalize(s)
#define SAVEFREESV(s) save_freesv(MUTABLE_SV(s))
#define SAVEVPTR(s) save_vptr((void*)&(s))
#define SAVEPADSVANDMORTALIZE(s) save_padsv_and_mortalize(s)
#define SAVEFREESV(s) save_freesv(MUTABLE_SV(s))
+#define SAVEFREEPADNAME(s) save_pushptr((void *)(s), SAVEt_FREEPADNAME)
#define SAVEMORTALIZESV(s) save_mortalizesv(MUTABLE_SV(s))
#define SAVEFREEOP(o) save_freeop((OP*)(o))
#define SAVEFREEPV(p) save_freepv((char*)(p))
#define SAVEMORTALIZESV(s) save_mortalizesv(MUTABLE_SV(s))
#define SAVEFREEOP(o) save_freeop((OP*)(o))
#define SAVEFREEPV(p) save_freepv((char*)(p))
@@
-256,7
+257,7
@@
scope has the given name. Name must be a literal string.
#define SAVEHDELETE(h,s) \
save_hdelete(MUTABLE_HV(h), (s))
#define SAVEADELETE(a,k) \
#define SAVEHDELETE(h,s) \
save_hdelete(MUTABLE_HV(h), (s))
#define SAVEADELETE(a,k) \
- save_adelete(MUTABLE_AV(a), (
I32
)(k))
+ save_adelete(MUTABLE_AV(a), (
SSize_t
)(k))
#define SAVEDESTRUCTOR(f,p) \
save_destructor((DESTRUCTORFUNC_NOCONTEXT_t)(f), (void*)(p))
#define SAVEDESTRUCTOR(f,p) \
save_destructor((DESTRUCTORFUNC_NOCONTEXT_t)(f), (void*)(p))
@@
-295,11
+296,8
@@
scope has the given name. Name must be a literal string.
#ifdef USE_ITHREADS
# define SAVECOPSTASH_FREE(c) SAVEIV((c)->cop_stashoff)
#ifdef USE_ITHREADS
# define SAVECOPSTASH_FREE(c) SAVEIV((c)->cop_stashoff)
-# define SAVECOPFILE(c) SAVEIV((c)->cop_filegvoff)
-# define SAVECOPFILE_FREE(c) ( \
- SAVEIV((c)->cop_filegvoff), \
- save_pushptr((void *)(c), SAVEt_COPFILEFREE) \
- )
+# define SAVECOPFILE(c) SAVEPPTR(CopFILE(c))
+# define SAVECOPFILE_FREE(c) SAVESHAREDPV(CopFILE(c))
#else
# /* XXX not refcounted */
# define SAVECOPSTASH_FREE(c) SAVESPTR(CopSTASH(c))
#else
# /* XXX not refcounted */
# define SAVECOPSTASH_FREE(c) SAVESPTR(CopSTASH(c))
@@
-343,11
+341,5
@@
STMT_START { \
#define save_op() save_pushptr((void *)(PL_op), SAVEt_OP)
/*
#define save_op() save_pushptr((void *)(PL_op), SAVEt_OP)
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/
* ex: set ts=8 sts=4 sw=4 et:
*/