74
74
# define THR_newSVsv_cow (sv ) newSVsv_flags((sv), SV_GMAGIC|SV_NOSTEAL)
75
75
#endif
76
76
77
+ /* Added in 5.17.6 in commit 284167a54e2 10/9/2012 5:19:37 AM
78
+ Add C define to remove taint support from perl */
79
+ #ifndef TAINT_get
80
+ # define TAINT_get (PL_tainted)
81
+ #endif
82
+
83
+ #ifndef LIKELY
84
+ # define LIKELY (x ) (x)
85
+ #endif
86
+
87
+ #ifndef UNLIKELY
88
+ # define UNLIKELY (x ) (x)
89
+ #endif
90
+
77
91
/* PL_op->op_private & OPpENTERSUB_HASTARG feature was added in
78
92
79
93
d30110745a - Ilya Zakharevich -8/26/1999 11:33:01 PM - 5.5.61
@@ -1228,10 +1242,12 @@ static void
1228
1242
S_croak_xs_unimplemented (CV * const cv )
1229
1243
{
1230
1244
dTHX ;
1245
+ /* added in 5.21.4 commit c5569a55d2 - 8/28/2014 6:56:30 PM - cv_name */
1246
+ #ifdef cv_name
1231
1247
SV * sv = cv_name (cv , NULL , 0 );
1232
1248
Perl_croak_nocontext (
1233
1249
"%s::%s(): unimplemented in this platform" + (sizeof ("%s::" )- 1 ), SvPVX (sv ));
1234
- #if 0 /* former implementation, retired because of machine code bloat */
1250
+ #else
1235
1251
char buf [sizeof ("CODE(0x%" UVxf ")" ) + (sizeof (UV )* 8 )];
1236
1252
const char * pv1 ;
1237
1253
const GV * const gv = CvGV (cv );
@@ -1365,26 +1381,26 @@ BOOT:
1365
1381
# endif
1366
1382
#endif
1367
1383
#if defined(HAS_GETITIMER ) && defined(HAS_SETITIMER )
1368
- # define GETITIMER_SUBSTR "Time::HiRes::getitimer"+13
1369
- # define SETITIMER_SUBSTR "Time::HiRes::setitimer"+13
1384
+ # define GETITIMER_SUBSTR NUM2PTR(const char *, "Time::HiRes::getitimer") +13
1385
+ # define SETITIMER_SUBSTR NUM2PTR(const char *, "Time::HiRes::setitimer") +13
1370
1386
#else
1371
- # define GETITIMER_SUBSTR "d_getitimer"+2
1372
- # define SETITIMER_SUBSTR "d_setitimer"+2
1387
+ # define GETITIMER_SUBSTR NUM2PTR(const char *, "d_getitimer") +2
1388
+ # define SETITIMER_SUBSTR NUM2PTR(const char *, "d_setitimer") +2
1373
1389
#endif
1374
- #define INIT1 INIT2(sym_usleep, "Time::HiRes::usleep"+13, sizeof("usleep")-1, NULL, 0) \
1375
- INIT2(sym_sleep, "Time::HiRes::sleep"+13, sizeof("sleep")-1, NULL, 0) \
1376
- INIT2(sym_ualarm, "Time::HiRes::ualarm"+13, sizeof("ualarm")-1, NULL, 0) \
1377
- INIT2(sym_alarm, "Time::HiRes::alarm"+13, sizeof("alarm")-1, NULL, 0) \
1378
- INIT2(sym_gettimeofday, "Time::HiRes::gettimeofday"+13, sizeof("gettimeofday")-1, NULL, 0) \
1379
- INIT2(sym_time, "Time::HiRes::time"+13, sizeof("time")-1, NULL, 0) \
1390
+ #define INIT1 INIT2(sym_usleep, NUM2PTR(const char *, "Time::HiRes::usleep") +13, sizeof("usleep")-1, NULL, 0) \
1391
+ INIT2(sym_sleep, NUM2PTR(const char *, "Time::HiRes::sleep") +13, sizeof("sleep")-1, NULL, 0) \
1392
+ INIT2(sym_ualarm, NUM2PTR(const char *, "Time::HiRes::ualarm") +13, sizeof("ualarm")-1, NULL, 0) \
1393
+ INIT2(sym_alarm, NUM2PTR(const char *, "Time::HiRes::alarm") +13, sizeof("alarm")-1, NULL, 0) \
1394
+ INIT2(sym_gettimeofday, NUM2PTR(const char *, "Time::HiRes::gettimeofday") +13, sizeof("gettimeofday")-1, NULL, 0) \
1395
+ INIT2(sym_time, NUM2PTR(const char *, "Time::HiRes::time") +13, sizeof("time")-1, NULL, 0) \
1380
1396
INIT2(sym_tv_interval, "tv_interval", sizeof("tv_interval")-1, NULL, 0) \
1381
1397
INIT2(sym_getitimer, GETITIMER_SUBSTR, sizeof("getitimer")-1, NULL, 0) \
1382
1398
INIT2(sym_setitimer, SETITIMER_SUBSTR, sizeof("setitimer")-1, NULL, 0) \
1383
- INIT2(sym_nanosleep, "Time::HiRes::nanosleep"+13, sizeof("nanosleep")-1, NULL, 0) \
1384
- INIT2(sym_clock_gettime, "Time::HiRes::clock_gettime"+13, sizeof("clock_gettime")-1, NULL, 0) \
1385
- INIT2(sym_clock_getres, "Time::HiRes::clock_getres"+13, sizeof("clock_getres")-1, NULL, 0) \
1386
- INIT2(sym_clock, "Time::HiRes::clock"+13, sizeof("clock")-1, NULL, 0) \
1387
- INIT2(sym_clock_nanosleep, "Time::HiRes::clock_nanosleep"+13, sizeof("clock_nanosleep")-1, NULL, 0) \
1399
+ INIT2(sym_nanosleep, NUM2PTR(const char *, "Time::HiRes::nanosleep") +13, sizeof("nanosleep")-1, NULL, 0) \
1400
+ INIT2(sym_clock_gettime, NUM2PTR(const char *, "Time::HiRes::clock_gettime") +13, sizeof("clock_gettime")-1, NULL, 0) \
1401
+ INIT2(sym_clock_getres, NUM2PTR(const char *, "Time::HiRes::clock_getres") +13, sizeof("clock_getres")-1, NULL, 0) \
1402
+ INIT2(sym_clock, NUM2PTR(const char *, "Time::HiRes::clock") +13, sizeof("clock")-1, NULL, 0) \
1403
+ INIT2(sym_clock_nanosleep, NUM2PTR(const char *, "Time::HiRes::clock_nanosleep") +13, sizeof("clock_nanosleep")-1, NULL, 0) \
1388
1404
INIT2(sym_CLOCKS_PER_SEC, "CLOCKS_PER_SEC", sizeof("CLOCKS_PER_SEC")-1, NULL, 0) \
1389
1405
INIT2(sym_CLOCK_BOOTTIME, "CLOCK_BOOTTIME", sizeof("CLOCK_BOOTTIME")-1, NULL, 0) \
1390
1406
INIT2(sym_CLOCK_HIGHRES, "CLOCK_HIGHRES", sizeof("CLOCK_HIGHRES")-1, NULL, 0) \
@@ -1415,23 +1431,23 @@ INIT2(sym_ITIMER_REAL, "ITIMER_REAL", sizeof("ITIMER_REAL")-1, NULL, 0) \
1415
1431
INIT2(sym_ITIMER_REALPROF, "ITIMER_REALPROF", sizeof("ITIMER_REALPROF")-1, NULL, 0) \
1416
1432
INIT2(sym_ITIMER_VIRTUAL, "ITIMER_VIRTUAL", sizeof("ITIMER_VIRTUAL")-1, NULL, 0) \
1417
1433
INIT2(sym_TIMER_ABSTIME, "TIMER_ABSTIME", sizeof("TIMER_ABSTIME")-1, NULL, 0) \
1418
- INIT2(sym_d_usleep, "d_usleep", sizeof("d_usleep")-1, "Time::HiRes::usleep"+13, 1) \
1419
- INIT2(sym_d_ualarm, "d_ualarm", sizeof("d_ualarm")-1, "Time::HiRes::ualarm"+13, 1) \
1420
- INIT2(sym_d_gettimeofday, "d_gettimeofday", sizeof("d_gettimeofday")-1, "Time::HiRes::gettimeofday"+13, 1) \
1434
+ INIT2(sym_d_usleep, "d_usleep", sizeof("d_usleep")-1, NUM2PTR(const char *, "Time::HiRes::usleep") +13, 1) \
1435
+ INIT2(sym_d_ualarm, "d_ualarm", sizeof("d_ualarm")-1, NUM2PTR(const char *, "Time::HiRes::ualarm") +13, 1) \
1436
+ INIT2(sym_d_gettimeofday, "d_gettimeofday", sizeof("d_gettimeofday")-1, NUM2PTR(const char *, "Time::HiRes::gettimeofday") +13, 1) \
1421
1437
INIT2(sym_d_getitimer, "d_getitimer", sizeof("d_getitimer")-1, GETITIMER_SUBSTR, 1) \
1422
1438
INIT2(sym_d_setitimer, "d_setitimer", sizeof("d_setitimer")-1, SETITIMER_SUBSTR, 1) \
1423
- INIT2(sym_d_nanosleep, "d_nanosleep", sizeof("d_nanosleep")-1, "Time::HiRes::nanosleep"+13, 1) \
1424
- INIT2(sym_d_clock_gettime, "d_clock_gettime", sizeof("d_clock_gettime")-1, "Time::HiRes::clock_gettime"+13, 1) \
1425
- INIT2(sym_d_clock_getres, "d_clock_getres", sizeof("d_clock_getres")-1, "Time::HiRes::clock_getres"+13, 1) \
1426
- INIT2(sym_d_clock, "d_clock", sizeof("d_clock")-1, "Time::HiRes::clock"+13, 1) \
1427
- INIT2(sym_d_clock_nanosleep, "d_clock_nanosleep", sizeof("d_clock_nanosleep")-1, "Time::HiRes::clock_nanosleep"+13, 1) \
1439
+ INIT2(sym_d_nanosleep, "d_nanosleep", sizeof("d_nanosleep")-1, NUM2PTR(const char *, "Time::HiRes::nanosleep") +13, 1) \
1440
+ INIT2(sym_d_clock_gettime, "d_clock_gettime", sizeof("d_clock_gettime")-1, NUM2PTR(const char *, "Time::HiRes::clock_gettime") +13, 1) \
1441
+ INIT2(sym_d_clock_getres, "d_clock_getres", sizeof("d_clock_getres")-1, NUM2PTR(const char *, "Time::HiRes::clock_getres") +13, 1) \
1442
+ INIT2(sym_d_clock, "d_clock", sizeof("d_clock")-1, NUM2PTR(const char *, "Time::HiRes::clock") +13, 1) \
1443
+ INIT2(sym_d_clock_nanosleep, "d_clock_nanosleep", sizeof("d_clock_nanosleep")-1, NUM2PTR(const char *, "Time::HiRes::clock_nanosleep") +13, 1) \
1428
1444
INIT2(sym_d_hires_stat, "d_hires_stat", sizeof("d_hires_stat")-1, NULL, 0) \
1429
1445
INIT2(sym_d_futimens, "d_futimens", sizeof("d_futimens")-1, NULL, 0) \
1430
1446
INIT2(sym_d_utimensat, "d_utimensat", sizeof("d_utimensat")-1, NULL, 0) \
1431
1447
INIT2(sym_d_hires_utime, "d_hires_utime", sizeof("d_hires_utime")-1, NULL, 0) \
1432
- INIT2(sym_stat, "Time::HiRes::stat"+13, sizeof("stat")-1, NULL, 0) \
1433
- INIT2(sym_lstat, "Time::HiRes::lstat"+13, sizeof("lstat")-1, NULL, 0) \
1434
- INIT2(sym_utime, "Time::HiRes::utime"+13, sizeof("utime")-1, NULL, 0)
1448
+ INIT2(sym_stat, NUM2PTR(const char *, "Time::HiRes::stat") +13, sizeof("stat")-1, NULL, 0) \
1449
+ INIT2(sym_lstat, NUM2PTR(const char *, "Time::HiRes::lstat") +13, sizeof("lstat")-1, NULL, 0) \
1450
+ INIT2(sym_utime, NUM2PTR(const char *, "Time::HiRes::utime") +13, sizeof("utime")-1, NULL, 0)
1435
1451
/* A test inside ../dist/XSLoader/t/XSLoader.t, doesn't allow us to
1436
1452
pass any args from our .pm to .xs. So this idea is rejected:
1437
1453
XSLoader::load( 'Time::HiRes', $XS_VERSION, \@EXPORT_OK );
@@ -1444,7 +1460,7 @@ INIT2(sym_utime, "Time::HiRes::utime"+13, sizeof("utime")-1, NULL, 0)
1444
1460
INIT1
1445
1461
};
1446
1462
#undef INIT2
1447
- #define INIT2 (_s , _str , _l , _d , _db ) ((_db) ? ((I8)-((I8)( _l))) : ( _l)),
1463
+ #define INIT2 (_s , _str , _l , _d , _db ) ((_db) ? NUM2PTR(I8,-NUM2PTR(I8, _l)) : NUM2PTR(I8, _l)),
1448
1464
static const I8 expoklen [] = {
1449
1465
INIT1
1450
1466
};
@@ -1974,10 +1990,10 @@ PROTOTYPE: $$@
1974
1990
tot ++ ;
1975
1991
}
1976
1992
} else {
1977
- croak ("%s unimplemented in this platform" , "d_futimens" + 2 );
1993
+ croak ("%s unimplemented in this platform" , NUM2PTR ( const char * , "d_futimens" ) + 2 );
1978
1994
}
1979
1995
# else /* HAS_FUTIMENS */
1980
- croak ("%s unimplemented in this platform" , "d_futimens" + 2 );
1996
+ croak ("%s unimplemented in this platform" , NUM2PTR ( const char * , "d_futimens" ) + 2 );
1981
1997
# endif /* HAS_FUTIMENS */
1982
1998
}
1983
1999
}
@@ -1992,10 +2008,10 @@ PROTOTYPE: $$@
1992
2008
tot ++ ;
1993
2009
}
1994
2010
} else {
1995
- croak ("%s unimplemented in this platform" , "d_utimensat" + 2 );
2011
+ croak ("%s unimplemented in this platform" , NUM2PTR ( const char * , "d_utimensat" ) + 2 );
1996
2012
}
1997
2013
# else /* HAS_UTIMENSAT */
1998
- croak ("%s unimplemented in this platform" , "d_utimensat" + 2 );
2014
+ croak ("%s unimplemented in this platform" , NUM2PTR ( const char * , "d_utimensat" ) + 2 );
1999
2015
# endif /* HAS_UTIMENSAT */
2000
2016
}
2001
2017
} /* while items */
0 commit comments