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
win32 symlink: reindent
[perl5.git]
/
scope.h
diff --git
a/scope.h
b/scope.h
index
c6a44ba
..
5b611c2
100644
(file)
--- a/
scope.h
+++ b/
scope.h
@@
-8,7
+8,7
@@
*
*/
*
*/
-/* ***
these are ordered by number of of auto-popped args
*/
+/* ***
Update arg_counts[] in scope.c if you modify these
*/
/* zero args */
/* zero args */
@@
-17,11
+17,9
@@
#define SAVEt_CLEARSV 2
#define SAVEt_REGCONTEXT 3
#define SAVEt_CLEARSV 2
#define SAVEt_REGCONTEXT 3
-#define SAVEt_ARG0_MAX 3
-
/* one arg */
/* one arg */
-#define SAVEt_
GP_ALIASED_SV
4
+#define SAVEt_
TMPSFLOOR
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
@@
-41,8
+39,6
@@
#define SAVEt_READONLY_OFF 21
#define SAVEt_FREEPADNAME 22
#define SAVEt_READONLY_OFF 21
#define SAVEt_FREEPADNAME 22
-#define SAVEt_ARG1_MAX 22
-
/* two args */
#define SAVEt_AV 23
/* two args */
#define SAVEt_AV 23
@@
-71,8
+67,6
@@
#define SAVEt_ADELETE 46
#define SAVEt_APTR 47
#define SAVEt_ADELETE 46
#define SAVEt_APTR 47
-#define SAVEt_ARG2_MAX 47
-
/* three args */
#define SAVEt_HELEM 48
/* three args */
#define SAVEt_HELEM 48
@@
-81,6
+75,7
@@
#define SAVEt_GVSLOT 51
#define SAVEt_AELEM 52
#define SAVEt_DELETE 53
#define SAVEt_GVSLOT 51
#define SAVEt_AELEM 52
#define SAVEt_DELETE 53
+#define SAVEt_HINTS_HH 54
#define SAVEf_SETMAGIC 1
#define SAVEf_SETMAGIC 1
@@
-100,8
+95,8
@@
* macros */
#define SS_MAXPUSH 4
* macros */
#define SS_MAXPUSH 4
-#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 SSCHECK(need) if (UNLIKELY(PL_savestack_ix + (I32)(need) > PL_savestack_max)) savestack_grow()
+#define SSGROW(need) if (UNLIKELY(PL_savestack_ix + (I32)(need)
> PL_savestack_max)) savestack_grow_cnt(need
)
#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))
@@
-119,7
+114,9
@@
* of the grow() can be done. These changes reduce the code of something
* like save_pushptrptr() to half its former size.
* Of course, doing the size check *after* pushing means we must always
* of the grow() can be done. These changes reduce the code of something
* like save_pushptrptr() to half its former size.
* Of course, doing the size check *after* pushing means we must always
- * ensure there are SS_MAXPUSH free slots on the savestack
+ * ensure there are SS_MAXPUSH free slots on the savestack. This ensured
+ * bt savestack_grow() and savestack_grow_cnt always allocating SS_MAXPUSH
+ * slots more than asked for, or that it sets PL_savestack_max to
*
* These are for internal core use only and are subject to change */
*
* These are for internal core use only and are subject to change */
@@
-131,9
+128,9
@@
assert((need) <= SS_MAXPUSH); \
ix += (need); \
PL_savestack_ix = ix; \
assert((need) <= SS_MAXPUSH); \
ix += (need); \
PL_savestack_ix = ix; \
- assert(ix <= PL_savestack_max
);
\
- if (UNLIKELY(
(ix + SS_MAXPUSH) > PL_savestack_max)) savestack_grow();
\
- assert(PL_savestack_ix
+ SS_MAXPUSH
<= PL_savestack_max);
+ assert(ix <= PL_savestack_max
+ SS_MAXPUSH);
\
+ if (UNLIKELY(
ix > PL_savestack_max)) savestack_grow();
\
+ assert(PL_savestack_ix <= PL_savestack_max);
#define SS_ADD_INT(i) ((ssp++)->any_i32 = (I32)(i))
#define SS_ADD_LONG(i) ((ssp++)->any_long = (long)(i))
#define SS_ADD_INT(i) ((ssp++)->any_i32 = (I32)(i))
#define SS_ADD_LONG(i) ((ssp++)->any_long = (long)(i))
@@
-155,41
+152,37
@@
/*
/*
-=
head1 Callback Functions
+=
for apidoc_section $callback
-=for apidoc Ams||SAVETMPS
-Opening bracket for temporaries on a callback. See C<
FREETMPS
> and
+=for apidoc Am
n
s||SAVETMPS
+Opening bracket for temporaries on a callback. See C<
L</FREETMPS>
> and
L<perlcall>.
L<perlcall>.
-=for apidoc Ams||FREETMPS
-Closing bracket for temporaries on a callback. See C<
SAVETMPS
> and
+=for apidoc Am
n
s||FREETMPS
+Closing bracket for temporaries on a callback. See C<
L</SAVETMPS>
> and
L<perlcall>.
L<perlcall>.
-=for apidoc Ams||ENTER
-Opening bracket on a callback. See C<LEAVE> and L<perlcall>.
-
-=for apidoc Ams||LEAVE
-Closing bracket on a callback. See C<ENTER> and L<perlcall>.
+=for apidoc Amns||ENTER
+Opening bracket on a callback. See C<L</LEAVE>> and L<perlcall>.
-=over
+=for apidoc Amns||LEAVE
+Closing bracket on a callback. See C<L</ENTER>> and L<perlcall>.
-=
item ENTER_with_name(name)
+=
for apidoc Ams||ENTER_with_name|"name"
-Same as C<
ENTER
>, but when debugging is enabled it also associates the
+Same as C<
L</ENTER>
>, but when debugging is enabled it also associates the
given literal string with the new scope.
given literal string with the new scope.
-=
item LEAVE_with_name(name)
+=
for apidoc Ams||LEAVE_with_name|"name"
-Same as C<LEAVE>, but when debugging is enabled it first checks that the
-scope has the given name. Name must be a literal string.
-
-=back
+Same as C<L</LEAVE>>, but when debugging is enabled it first checks that the
+scope has the given name. C<name> must be a literal string.
=cut
*/
=cut
*/
-#define SAVETMPS Perl_save
_strlen(aTHX_ (STRLEN *)&PL_tmps_floor), \
- PL_tmps_floor = PL_tmps_ix
+#define SAVETMPS Perl_save
tmps(aTHX)
+
#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
@@
-308,7
+301,7
@@
scope has the given name. Name must be a literal string.
#define SAVECOPLINE(c) SAVEI32(CopLINE(c))
/* SSNEW() temporarily allocates a specified number of bytes of data on the
#define SAVECOPLINE(c) SAVEI32(CopLINE(c))
/* SSNEW() temporarily allocates a specified number of bytes of data on the
- * savestack. It returns an
integer
index into the savestack, because a
+ * savestack. It returns an
I32
index into the savestack, because a
* pointer would get broken if the savestack is moved on reallocation.
* SSNEWa() works like SSNEW(), but also aligns the data to the specified
* number of bytes. MEM_ALIGNBYTES is perhaps the most useful. The
* pointer would get broken if the savestack is moved on reallocation.
* SSNEWa() works like SSNEW(), but also aligns the data to the specified
* number of bytes. MEM_ALIGNBYTES is perhaps the most useful. The
@@
-341,11
+334,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:
*/