Skip to content

Commit 5b36fc6

Browse files
committed
mathoms.c: Convert Perl_foo definitions to call foo
Unless there is some reason not to, a mathoms Perl_ function should just call the macro it is the long name for. That way, when the macro changes, the function automatically correspondingly does too. I discovered the hard way that one reason not to change is if the macro expands differently depending on where in the code it is called from. sv_setsv() always calls sv_setsv_flags(), but one of the flags it passes is 0 when not called from the perl core. When mathoms is compiled, we don't know the caller, so the code assumes it isn't called from core (which it isn't). This commit changes all the functions in mathoms whose definitions expand exactly to the macro they are supposed to wrap, into calling that macro instead of duplicating the expansion in their mathoms.c bodies. I checked this by having cpp create mathoms.i and then I saved it under a different name. Then I changed all the functions to call their implementing macro. Then I ran cpp again to create a revised mathoms.i. Then I compared the two .i files. I backed out the changes to those functions whose expansions differed between the two files. The result is this commit
1 parent b7a7434 commit 5b36fc6

File tree

1 file changed

+41
-49
lines changed

1 file changed

+41
-49
lines changed

mathoms.c

Lines changed: 41 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,15 @@ Perl_sv_unref(pTHX_ SV *sv)
8787
{
8888
PERL_ARGS_ASSERT_SV_UNREF;
8989

90-
sv_unref_flags(sv, 0);
90+
sv_unref(sv);
9191
}
9292

9393
void
9494
Perl_sv_taint(pTHX_ SV *sv)
9595
{
9696
PERL_ARGS_ASSERT_SV_TAINT;
9797

98-
sv_magic((sv), NULL, PERL_MAGIC_taint, NULL, 0);
98+
sv_taint(sv);
9999
}
100100

101101
/* sv_2iv() is now a macro using Perl_sv_2iv_flags();
@@ -107,7 +107,7 @@ Perl_sv_2iv(pTHX_ SV *sv)
107107
{
108108
PERL_ARGS_ASSERT_SV_2IV;
109109

110-
return sv_2iv_flags(sv, SV_GMAGIC);
110+
return sv_2iv(sv);
111111
}
112112

113113
/* sv_2uv() is now a macro using Perl_sv_2uv_flags();
@@ -119,7 +119,7 @@ Perl_sv_2uv(pTHX_ SV *sv)
119119
{
120120
PERL_ARGS_ASSERT_SV_2UV;
121121

122-
return sv_2uv_flags(sv, SV_GMAGIC);
122+
return sv_2uv(sv);
123123
}
124124

125125
/* sv_2nv() is now a macro using Perl_sv_2nv_flags();
@@ -129,7 +129,7 @@ Perl_sv_2uv(pTHX_ SV *sv)
129129
NV
130130
Perl_sv_2nv(pTHX_ SV *sv)
131131
{
132-
return sv_2nv_flags(sv, SV_GMAGIC);
132+
return sv_2nv(sv);
133133
}
134134

135135

@@ -142,38 +142,38 @@ Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp)
142142
{
143143
PERL_ARGS_ASSERT_SV_2PV;
144144

145-
return sv_2pv_flags(sv, lp, SV_GMAGIC);
145+
return sv_2pv(sv, lp);
146146
}
147147

148148
char *
149149
Perl_sv_2pv_nolen(pTHX_ SV *sv)
150150
{
151151
PERL_ARGS_ASSERT_SV_2PV_NOLEN;
152-
return sv_2pv(sv, NULL);
152+
return sv_2pv_nolen(sv);
153153
}
154154

155155
char *
156156
Perl_sv_2pvbyte_nolen(pTHX_ SV *sv)
157157
{
158158
PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN;
159159

160-
return sv_2pvbyte(sv, NULL);
160+
return sv_2pvbyte_nolen(sv);
161161
}
162162

163163
char *
164164
Perl_sv_2pvutf8_nolen(pTHX_ SV *sv)
165165
{
166166
PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN;
167167

168-
return sv_2pvutf8(sv, NULL);
168+
return sv_2pvutf8_nolen(sv);
169169
}
170170

171171
void
172172
Perl_sv_force_normal(pTHX_ SV *sv)
173173
{
174174
PERL_ARGS_ASSERT_SV_FORCE_NORMAL;
175175

176-
sv_force_normal_flags(sv, 0);
176+
sv_force_normal(sv);
177177
}
178178

179179
/* sv_setsv() is now a macro using Perl_sv_setsv_flags();
@@ -197,15 +197,15 @@ Perl_sv_catpvn(pTHX_ SV *dsv, const char* sstr, STRLEN slen)
197197
{
198198
PERL_ARGS_ASSERT_SV_CATPVN;
199199

200-
sv_catpvn_flags(dsv, sstr, slen, SV_GMAGIC);
200+
sv_catpvn(dsv, sstr, slen);
201201
}
202202

203203
void
204204
Perl_sv_catpvn_mg(pTHX_ SV *dsv, const char *sstr, STRLEN len)
205205
{
206206
PERL_ARGS_ASSERT_SV_CATPVN_MG;
207207

208-
sv_catpvn_flags(dsv,sstr,len,SV_GMAGIC|SV_SMAGIC);
208+
sv_catpvn_mg(dsv,sstr,len);
209209
}
210210

211211
/* sv_catsv() is now a macro using Perl_sv_catsv_flags();
@@ -217,15 +217,15 @@ Perl_sv_catsv(pTHX_ SV *dsv, SV * const sstr)
217217
{
218218
PERL_ARGS_ASSERT_SV_CATSV;
219219

220-
sv_catsv_flags(dsv, sstr, SV_GMAGIC);
220+
sv_catsv(dsv, sstr);
221221
}
222222

223223
void
224224
Perl_sv_catsv_mg(pTHX_ SV *dsv, SV * const sstr)
225225
{
226226
PERL_ARGS_ASSERT_SV_CATSV_MG;
227227

228-
sv_catsv_flags(dsv,sstr,SV_GMAGIC|SV_SMAGIC);
228+
sv_catsv_mg(dsv,sstr);
229229
}
230230

231231
/*
@@ -261,7 +261,7 @@ Perl_sv_pvn_force(pTHX_ SV *sv, STRLEN *lp)
261261
{
262262
PERL_ARGS_ASSERT_SV_PVN_FORCE;
263263

264-
return sv_pvn_force_flags(sv, lp, SV_GMAGIC);
264+
return sv_pvn_force(sv, lp);
265265
}
266266

267267
/* sv_pvbyte () is now a macro using Perl_sv_2pv_flags();
@@ -295,7 +295,7 @@ Perl_sv_utf8_upgrade(pTHX_ SV *sv)
295295
{
296296
PERL_ARGS_ASSERT_SV_UTF8_UPGRADE;
297297

298-
return sv_utf8_upgrade_flags(sv, SV_GMAGIC);
298+
return sv_utf8_upgrade(sv);
299299
}
300300

301301
#if defined(HUGE_VAL) || (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL))
@@ -320,39 +320,39 @@ Perl_gv_fullname3(pTHX_ SV *sv, const GV *gv, const char *prefix)
320320
{
321321
PERL_ARGS_ASSERT_GV_FULLNAME3;
322322

323-
gv_fullname4(sv, gv, prefix, TRUE);
323+
gv_fullname3(sv, gv, prefix);
324324
}
325325

326326
void
327327
Perl_gv_efullname3(pTHX_ SV *sv, const GV *gv, const char *prefix)
328328
{
329329
PERL_ARGS_ASSERT_GV_EFULLNAME3;
330330

331-
gv_efullname4(sv, gv, prefix, TRUE);
331+
gv_efullname3(sv, gv, prefix);
332332
}
333333

334334
GV *
335335
Perl_gv_fetchmethod(pTHX_ HV *stash, const char *name)
336336
{
337337
PERL_ARGS_ASSERT_GV_FETCHMETHOD;
338338

339-
return gv_fetchmethod_autoload(stash, name, TRUE);
339+
return gv_fetchmethod(stash, name);
340340
}
341341

342342
HE *
343343
Perl_hv_iternext(pTHX_ HV *hv)
344344
{
345345
PERL_ARGS_ASSERT_HV_ITERNEXT;
346346

347-
return hv_iternext_flags(hv, 0);
347+
return hv_iternext(hv);
348348
}
349349

350350
void
351351
Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how)
352352
{
353353
PERL_ARGS_ASSERT_HV_MAGIC;
354354

355-
sv_magic(MUTABLE_SV(hv), MUTABLE_SV(gv), how, NULL, 0);
355+
hv_magic(hv, gv, how);
356356
}
357357

358358
bool
@@ -361,8 +361,7 @@ Perl_do_open(pTHX_ GV *gv, const char *name, I32 len, int as_raw,
361361
{
362362
PERL_ARGS_ASSERT_DO_OPEN;
363363

364-
return do_openn(gv, name, len, as_raw, rawmode, rawperm,
365-
supplied_fp, (SV **) NULL, 0);
364+
return do_open(gv, name, len, as_raw, rawmode, rawperm, supplied_fp);
366365
}
367366

368367
#ifndef OS2
@@ -371,7 +370,7 @@ Perl_do_aexec(pTHX_ SV *really, SV **mark, SV **sp)
371370
{
372371
PERL_ARGS_ASSERT_DO_AEXEC;
373372

374-
return do_aexec5(really, mark, sp, 0, 0);
373+
return do_aexec(really, mark, sp);
375374
}
376375
#endif
377376

@@ -425,7 +424,7 @@ Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len)
425424
{
426425
PERL_ARGS_ASSERT_SV_USEPVN_MG;
427426

428-
sv_usepvn_flags(sv,ptr,len, SV_SMAGIC);
427+
sv_usepvn_mg(sv,ptr,len);
429428
}
430429

431430

@@ -434,47 +433,44 @@ Perl_sv_usepvn(pTHX_ SV *sv, char *ptr, STRLEN len)
434433
{
435434
PERL_ARGS_ASSERT_SV_USEPVN;
436435

437-
sv_usepvn_flags(sv,ptr,len, 0);
436+
sv_usepvn(sv,ptr,len);
438437
}
439438

440439
HE *
441440
Perl_hv_store_ent(pTHX_ HV *hv, SV *keysv, SV *val, U32 hash)
442441
{
443-
return (HE *)hv_common(hv, keysv, NULL, 0, 0, HV_FETCH_ISSTORE, val, hash);
442+
return hv_store_ent(hv, keysv, val, hash);
444443
}
445444

446445
bool
447446
Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
448447
{
449448
PERL_ARGS_ASSERT_HV_EXISTS_ENT;
450449

451-
return cBOOL(hv_common(hv, keysv, NULL, 0, 0, HV_FETCH_ISEXISTS, 0, hash));
450+
return hv_exists_ent(hv, keysv, hash);
452451
}
453452

454453
HE *
455454
Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash)
456455
{
457456
PERL_ARGS_ASSERT_HV_FETCH_ENT;
458457

459-
return (HE *)hv_common(hv, keysv, NULL, 0, 0,
460-
(lval ? HV_FETCH_LVALUE : 0), NULL, hash);
458+
return hv_fetch_ent(hv, keysv, lval, hash);
461459
}
462460

463461
SV *
464462
Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash)
465463
{
466464
PERL_ARGS_ASSERT_HV_DELETE_ENT;
467465

468-
return MUTABLE_SV(hv_common(hv, keysv, NULL, 0, 0, flags | HV_DELETE, NULL,
469-
hash));
466+
return hv_delete_ent(hv, keysv, flags, hash);
470467
}
471468

472469
SV**
473470
Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash,
474471
int flags)
475472
{
476-
return (SV**) hv_common(hv, NULL, key, klen, flags,
477-
(HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), val, hash);
473+
return hv_store_flags(hv, key, klen, val, hash, flags);
478474
}
479475

480476
SV**
@@ -554,11 +550,7 @@ Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen_i32, I32 flags)
554550
AV *
555551
Perl_newAV(pTHX)
556552
{
557-
return MUTABLE_AV(newSV_type(SVt_PVAV));
558-
/* sv_upgrade does AvREAL_only():
559-
AvALLOC(av) = 0;
560-
AvARRAY(av) = NULL;
561-
AvMAX(av) = AvFILLp(av) = -1; */
553+
return newAV();
562554
}
563555

564556
HV *
@@ -575,39 +567,39 @@ Perl_sv_insert(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len,
575567
const char *const little, const STRLEN littlelen)
576568
{
577569
PERL_ARGS_ASSERT_SV_INSERT;
578-
sv_insert_flags(bigstr, offset, len, little, littlelen, SV_GMAGIC);
570+
sv_insert(bigstr, offset, len, little, littlelen);
579571
}
580572

581573
IO *
582574
Perl_newIO(pTHX)
583575
{
584-
return MUTABLE_IO(newSV_type(SVt_PVIO));
576+
return newIO();
585577
}
586578

587579
I32
588580
Perl_my_stat(pTHX)
589581
{
590-
return my_stat_flags(SV_GMAGIC);
582+
return my_stat();
591583
}
592584

593585
I32
594586
Perl_my_lstat(pTHX)
595587
{
596-
return my_lstat_flags(SV_GMAGIC);
588+
return my_lstat();
597589
}
598590

599591
I32
600592
Perl_sv_eq(pTHX_ SV *sv1, SV *sv2)
601593
{
602-
return sv_eq_flags(sv1, sv2, SV_GMAGIC);
594+
return sv_eq(sv1, sv2);
603595
}
604596

605597
#ifdef USE_LOCALE_COLLATE
606598
char *
607599
Perl_sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp)
608600
{
609601
PERL_ARGS_ASSERT_SV_COLLXFRM;
610-
return sv_collxfrm_flags(sv, nxp, SV_GMAGIC);
602+
return sv_collxfrm(sv, nxp);
611603
}
612604

613605
#endif
@@ -616,13 +608,13 @@ bool
616608
Perl_sv_2bool(pTHX_ SV *const sv)
617609
{
618610
PERL_ARGS_ASSERT_SV_2BOOL;
619-
return sv_2bool_flags(sv, SV_GMAGIC);
611+
return sv_2bool(sv);
620612
}
621613

622614
CV *
623615
Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block)
624616
{
625-
return newATTRSUB(floor, o, proto, NULL, block);
617+
return newSUB(floor, o, proto, block);
626618
}
627619

628620
SV *
@@ -636,7 +628,7 @@ Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
636628
{
637629
PERL_ARGS_ASSERT_SV_COPYPV;
638630

639-
sv_copypv_flags(dsv, ssv, SV_GMAGIC);
631+
sv_copypv(dsv, ssv);
640632
}
641633

642634
STRLEN
@@ -645,7 +637,7 @@ Perl_is_utf8_char_buf(const U8 *buf, const U8* buf_end)
645637

646638
PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF;
647639

648-
return isUTF8_CHAR(buf, buf_end);
640+
return is_utf8_char_buf(buf, buf_end);
649641
}
650642

651643
/*

0 commit comments

Comments
 (0)