Skip to content

Commit 2402e46

Browse files
committed
smoke
1 parent 09a9ab7 commit 2402e46

File tree

18 files changed

+154
-103
lines changed

18 files changed

+154
-103
lines changed

embed.fnc

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -771,13 +771,19 @@ Cpd |I32 |debop |NN const OP* o
771771
Apd |I32 |debstack
772772
Cp |I32 |debstackptrs
773773
pR |SV * |defelem_target |NN SV *sv|NULLOK MAGIC *mg
774-
ATpd |char* |delimcpy|NN char* to|NN const char* to_end \
774+
AiTpd |char* |delimcpy|NN char* to|NN const char* to_end \
775775
|NN const char* from|NN const char* from_end \
776776
|const int delim|NN I32* retlen
777+
ATpd |char* |delimcpy_strlen_retlen|NN char* to \
778+
|NN const char* to_end \
779+
|NN const char* from \
780+
|NN const char* from_end \
781+
|const int delim \
782+
|NN Size_t* retlen
777783
EXTpd |char* |delimcpy_no_escape|NN char* to|NN const char* to_end \
778784
|NN const char* from \
779785
|NN const char* from_end \
780-
|const int delim|NN I32* retlen
786+
|const int delim|NN Size_t* retlen
781787
: Used in op.c, perl.c
782788
px |void |delete_eval_scope
783789
Aprd |OP* |die_sv |NN SV *baseex
@@ -1011,7 +1017,7 @@ p |void |gv_setref |NN SV *const dsv|NN SV *const ssv
10111017
Apd |HV* |gv_stashpv |NN const char* name|I32 flags
10121018
Apd |HV* |gv_stashpvn |NN const char* name|U32 namelen|I32 flags
10131019
#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
1014-
EpGd |HV* |gv_stashsvpvn_cached|SV *namesv|const char* name|U32 namelen|I32 flags
1020+
EpGd |HV* |gv_stashsvpvn_cached|SV *namesv|const char* name|STRLEN namelen|I32 flags
10151021
#endif
10161022
#if defined(PERL_IN_GV_C)
10171023
i |HV* |gv_stashpvn_internal |NN const char* name|U32 namelen|I32 flags
@@ -1024,19 +1030,22 @@ Apd |void |hv_clear |NULLOK HV *hv
10241030
: used in SAVEHINTS() and op.c
10251031
ApdR |HV * |hv_copy_hints_hv|NULLOK HV *const ohv
10261032
Cp |void |hv_delayfree_ent|NULLOK HV *notused|NULLOK HE *entry
1027-
AbMdp |SV* |hv_delete |NULLOK HV *hv|NN const char *key|I32 klen \
1033+
AbMdp |SV* |hv_delete |NULLOK HV *hv|NN const char *key|SSize_t klen \
10281034
|I32 flags
10291035
AbMdp |SV* |hv_delete_ent |NULLOK HV *hv|NN SV *keysv|I32 flags|U32 hash
1030-
AbMdRp |bool |hv_exists |NULLOK HV *hv|NN const char *key|I32 klen
1036+
AbMdRp |bool |hv_exists |NULLOK HV *hv|NN const char *key|SSize_t klen
10311037
AbMdRp |bool |hv_exists_ent |NULLOK HV *hv|NN SV *keysv|U32 hash
1032-
AbMdp |SV** |hv_fetch |NULLOK HV *hv|NN const char *key|I32 klen \
1038+
AbMdp |SV** |hv_fetch |NULLOK HV *hv|NN const char *key|SSize_t klen \
10331039
|I32 lval
10341040
AbMdp |HE* |hv_fetch_ent |NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash
10351041
Cp |void* |hv_common |NULLOK HV *hv|NULLOK SV *keysv \
10361042
|NULLOK const char* key|STRLEN klen|int flags \
10371043
|int action|NULLOK SV *val|U32 hash
1038-
Cp |void* |hv_common_key_len|NULLOK HV *hv|NN const char *key \
1039-
|I32 klen_i32|const int action|NULLOK SV *val \
1044+
Cp |void* |hv_common_key_len|NULLOK HV *hv \
1045+
|NN const char *key \
1046+
|SSize_t klen_ssize_t \
1047+
|const int action \
1048+
|NULLOK SV *val \
10401049
|const U32 hash
10411050
Cpod |STRLEN |hv_fill |NN HV *const hv
10421051
Cp |void |hv_free_ent |NULLOK HV *notused|NULLOK HE *entry
@@ -1074,12 +1083,12 @@ Xpd |struct refcounted_he *|refcounted_he_new_sv \
10741083
Xpd |void |refcounted_he_free|NULLOK struct refcounted_he *he
10751084
Xpd |struct refcounted_he *|refcounted_he_inc|NULLOK struct refcounted_he *he
10761085
ApbMd |SV** |hv_store |NULLOK HV *hv|NULLOK const char *key \
1077-
|I32 klen|NULLOK SV *val|U32 hash
1086+
|SSize_t klen|NULLOK SV *val|U32 hash
10781087
Amd |SV** |hv_stores |NULLOK HV* hv|"key"|NULLOK SV* val
10791088
ApbMd |HE* |hv_store_ent |NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\
10801089
|U32 hash
10811090
ApbMx |SV** |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \
1082-
|I32 klen|NULLOK SV *val|U32 hash|int flags
1091+
|SSize_t klen|NULLOK SV *val|U32 hash|int flags
10831092
Amd |void |hv_undef |NULLOK HV *hv
10841093
poX |void |hv_undef_flags |NULLOK HV *hv|U32 flags
10851094
AdmP |I32 |ibcmp |NN const char* a|NN const char* b|I32 len
@@ -1227,7 +1236,7 @@ EXdpR |bool |isSCRIPT_RUN |NN const U8 *s|NN const U8 *send \
12271236
: Used in perly.y
12281237
p |OP* |jmaybe |NN OP *o
12291238
: Used in pp.c
1230-
pP |I32 |keyword |NN const char *name|I32 len|bool all_keywords
1239+
pP |I32 |keyword |NN const char *name|SSize_t len|bool all_keywords
12311240
#if defined(PERL_IN_OP_C)
12321241
S |void |inplace_aassign |NN OP* o
12331242
#endif
@@ -1383,7 +1392,7 @@ Apd |void |sortsv |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp
13831392
Apd |void |sortsv_flags |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
13841393
Apd |int |mg_clear |NN SV* sv
13851394
Apd |int |mg_copy |NN SV *sv|NN SV *nsv|NULLOK const char *key \
1386-
|I32 klen
1395+
|SSize_t klen
13871396
: Defined in mg.c, used only in scope.c
13881397
pd |void |mg_localize |NN SV* sv|NN SV* nsv|bool setmagic
13891398
Apd |SV* |sv_string_from_errnum|int errnum|NULLOK SV* tgtsv
@@ -1856,7 +1865,7 @@ Apd |void |sv_free |NULLOK SV *const sv
18561865
poxX |void |sv_free2 |NN SV *const sv|const U32 refcnt
18571866
: Used only in perl.c
18581867
pd |void |sv_free_arenas
1859-
Apd |char* |sv_gets |NN SV *const sv|NN PerlIO *const fp|I32 append
1868+
Apd |char* |sv_gets |NN SV *const sv|NN PerlIO *const fp|SSize_t append
18601869
Cpd |char* |sv_grow |NN SV *const sv|STRLEN newlen
18611870
Cpd |char* |sv_grow_fresh |NN SV *const sv|STRLEN newlen
18621871
Apd |void |sv_inc |NULLOK SV *const sv
@@ -1872,7 +1881,7 @@ Apd |STRLEN |sv_len |NULLOK SV *const sv
18721881
Apd |STRLEN |sv_len_utf8 |NULLOK SV *const sv
18731882
Apd |STRLEN |sv_len_utf8_nomg|NN SV *const sv
18741883
Apd |void |sv_magic |NN SV *const sv|NULLOK SV *const obj|const int how \
1875-
|NULLOK const char *const name|const I32 namlen
1884+
|NULLOK const char *const name|const SSize_t namlen
18761885
Apd |MAGIC *|sv_magicext |NN SV *const sv|NULLOK SV *const obj|const int how \
18771886
|NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \
18781887
|const I32 namlen
@@ -2890,7 +2899,7 @@ SaTR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
28902899
ST |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
28912900
S |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
28922901
SR |HEK* |share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags
2893-
rS |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg
2902+
rS |void |hv_notallowed |int flags|NN const char *key|SSize_t klen|NN const char *msg
28942903
S |struct xpvhv_aux*|hv_auxinit|NN HV *hv
28952904
Sx |SV* |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
28962905
|NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \

embed.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@
135135
#define debstack() Perl_debstack(aTHX)
136136
#define debstackptrs() Perl_debstackptrs(aTHX)
137137
#define delimcpy Perl_delimcpy
138+
#define delimcpy_strlen_retlen Perl_delimcpy_strlen_retlen
138139
#define despatch_signals() Perl_despatch_signals(aTHX)
139140
#ifndef MULTIPLICITY
140141
#define die Perl_die

ext/XS-APItest/APItest.xs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6995,7 +6995,7 @@ test_delimcpy_no_escape(SV * from_sv, STRLEN trunc_from, char delim, STRLEN to_l
69956995
PREINIT:
69966996
char * from;
69976997
AV *av;
6998-
I32 retlen;
6998+
STRLEN retlen;
69996999
char * from_pos_after_copy;
70007000
char * to;
70017001
CODE:

gv.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,7 +1673,7 @@ reasons.
16731673
assert(namesv || name)
16741674

16751675
HV*
1676-
Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char *name, U32 namelen, I32 flags)
1676+
Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char *name, STRLEN namelen, I32 flags)
16771677
{
16781678
HV* stash;
16791679
HE* he;
@@ -1710,7 +1710,7 @@ Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char *name, U32 namelen, I32 f
17101710
if (stash && namelen) {
17111711
SV* const ref = newSViv(PTR2IV(stash));
17121712
(void)hv_store(PL_stashcache, name,
1713-
(flags & SVf_UTF8) ? -(I32)namelen : (I32)namelen, ref, 0);
1713+
(flags & SVf_UTF8) ? -(SSize_t)namelen : namelen, ref, 0);
17141714
}
17151715

17161716
return stash;

hv.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ Perl_he_dup(pTHX_ const HE *e, bool shared, CLONE_PARAMS* param)
310310
#endif /* USE_ITHREADS */
311311

312312
static void
313-
S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen,
313+
S_hv_notallowed(pTHX_ int flags, const char *key, SSize_t klen,
314314
const char *msg)
315315
{
316316
/* Straight to SVt_PVN here, as needed by sv_setpvn_fresh and
@@ -457,19 +457,19 @@ information on how to use this function on tied hashes.
457457

458458
/* Common code for hv_delete()/hv_exists()/hv_fetch()/hv_store() */
459459
void *
460-
Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32,
460+
Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, SSize_t klen_ssize_t,
461461
const int action, SV *val, const U32 hash)
462462
{
463463
STRLEN klen;
464464
int flags;
465465

466466
PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN;
467467

468-
if (klen_i32 < 0) {
469-
klen = -klen_i32;
468+
if (klen_ssize_t < 0) {
469+
klen = -klen_ssize_t;
470470
flags = HVhek_UTF8;
471471
} else {
472-
klen = klen_i32;
472+
klen = klen_ssize_t;
473473
flags = 0;
474474
}
475475
return hv_common(hv, NULL, key, klen, flags, action, val, hash);

inline.h

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2759,7 +2759,9 @@ Perl_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs)
27592759

27602760
PERL_DTRACE_PROBE_ENTRY(cv);
27612761
cx->blk_sub.old_cxsubix = PL_curstackinfo->si_cxsubix;
2762-
PL_curstackinfo->si_cxsubix = cx - PL_curstackinfo->si_cxstack;
2762+
Ptrdiff_t diff = cx - PL_curstackinfo->si_cxstack;
2763+
ASSUME(diff < I32_MAX);
2764+
PL_curstackinfo->si_cxsubix = diff;
27632765
cx->blk_sub.cv = cv;
27642766
cx->blk_sub.olddepth = CvDEPTH(cv);
27652767
cx->blk_sub.prevcomppad = PL_comppad;
@@ -3426,6 +3428,22 @@ Perl_cop_file_avn(pTHX_ const COP *cop) {
34263428

34273429
#endif
34283430

3431+
PERL_STATIC_INLINE char *
3432+
Perl_delimcpy(char *to, const char *to_end,
3433+
const char *from, const char *from_end,
3434+
const int delim, I32 *retlen)
3435+
{
3436+
PERL_ARGS_ASSERT_DELIMCPY;
3437+
3438+
STRLEN strlen_retlen;
3439+
3440+
char * ret = delimcpy_strlen_retlen(to, to_end, from, from_end, delim,
3441+
&strlen_retlen);
3442+
assert(strlen_retlen <= I32_MAX);
3443+
*retlen = strlen_retlen;
3444+
return ret;
3445+
}
3446+
34293447
/*
34303448
* ex: set ts=8 sts=4 sw=4 et:
34313449
*/

keywords.c

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

keywords.h

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mathoms.c

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -577,61 +577,61 @@ Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash)
577577
}
578578

579579
SV**
580-
Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash,
580+
Perl_hv_store_flags(pTHX_ HV *hv, const char *key, SSize_t klen, SV *val, U32 hash,
581581
int flags)
582582
{
583583
return (SV**) hv_common(hv, NULL, key, klen, flags,
584584
(HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), val, hash);
585585
}
586586

587587
SV**
588-
Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen_i32, SV *val, U32 hash)
588+
Perl_hv_store(pTHX_ HV *hv, const char *key, SSize_t klen_ssize_t, SV *val, U32 hash)
589589
{
590590
STRLEN klen;
591591
int flags;
592592

593-
if (klen_i32 < 0) {
594-
klen = -klen_i32;
593+
if (klen_ssize_t < 0) {
594+
klen = -klen_ssize_t;
595595
flags = HVhek_UTF8;
596596
} else {
597-
klen = klen_i32;
597+
klen = klen_ssize_t;
598598
flags = 0;
599599
}
600600
return (SV **) hv_common(hv, NULL, key, klen, flags,
601601
(HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), val, hash);
602602
}
603603

604604
bool
605-
Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen_i32)
605+
Perl_hv_exists(pTHX_ HV *hv, const char *key, SSize_t klen_ssize_t)
606606
{
607607
STRLEN klen;
608608
int flags;
609609

610610
PERL_ARGS_ASSERT_HV_EXISTS;
611611

612-
if (klen_i32 < 0) {
613-
klen = -klen_i32;
612+
if (klen_ssize_t < 0) {
613+
klen = -klen_ssize_t;
614614
flags = HVhek_UTF8;
615615
} else {
616-
klen = klen_i32;
616+
klen = klen_ssize_t;
617617
flags = 0;
618618
}
619619
return cBOOL(hv_common(hv, NULL, key, klen, flags, HV_FETCH_ISEXISTS, 0, 0));
620620
}
621621

622622
SV**
623-
Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen_i32, I32 lval)
623+
Perl_hv_fetch(pTHX_ HV *hv, const char *key, SSize_t klen_ssize_t, I32 lval)
624624
{
625625
STRLEN klen;
626626
int flags;
627627

628628
PERL_ARGS_ASSERT_HV_FETCH;
629629

630-
if (klen_i32 < 0) {
631-
klen = -klen_i32;
630+
if (klen_ssize_t < 0) {
631+
klen = -klen_ssize_t;
632632
flags = HVhek_UTF8;
633633
} else {
634-
klen = klen_i32;
634+
klen = klen_ssize_t;
635635
flags = 0;
636636
}
637637
return (SV **) hv_common(hv, NULL, key, klen, flags,
@@ -640,18 +640,18 @@ Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen_i32, I32 lval)
640640
}
641641

642642
SV *
643-
Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen_i32, I32 flags)
643+
Perl_hv_delete(pTHX_ HV *hv, const char *key, SSize_t klen_ssize_t, I32 flags)
644644
{
645645
STRLEN klen;
646646
int k_flags;
647647

648648
PERL_ARGS_ASSERT_HV_DELETE;
649649

650-
if (klen_i32 < 0) {
651-
klen = -klen_i32;
650+
if (klen_ssize_t < 0) {
651+
klen = -klen_ssize_t;
652652
k_flags = HVhek_UTF8;
653653
} else {
654-
klen = klen_i32;
654+
klen = klen_ssize_t;
655655
k_flags = 0;
656656
}
657657
return MUTABLE_SV(hv_common(hv, NULL, key, klen, k_flags, flags | HV_DELETE,

mg.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ Copies the magic from one SV to another. See C<L</sv_magic>>.
433433
*/
434434

435435
int
436-
Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen)
436+
Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, SSize_t klen)
437437
{
438438
int count = 0;
439439
MAGIC* mg;
@@ -1337,7 +1337,7 @@ Perl_magic_setenv(pTHX_ SV *sv, MAGIC *mg)
13371337
while (s < strend) {
13381338
char tmpbuf[256];
13391339
Stat_t st;
1340-
I32 i;
1340+
Size_t i;
13411341
s = delimcpy_no_escape(tmpbuf, tmpbuf + sizeof tmpbuf,
13421342
s, strend, path_sep, &i);
13431343
s++;

0 commit comments

Comments
 (0)