Use more efficient SvPV_nolen(x) instead of SvPV(x,PL_na)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10058 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
0d7175fa1c
commit
c5fae8d592
5 changed files with 17 additions and 8 deletions
|
|
@ -1,5 +1,10 @@
|
||||||
Version 1.3.32 (in progress)
|
Version 1.3.32 (in progress)
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
10/28/2007: wsfulton
|
||||||
|
[Perl] Use more efficient SvPV_nolen(x) instead of SvPV(x,PL_na) if SvPV_nolen is
|
||||||
|
supported.
|
||||||
|
|
||||||
10/26/2007: wuzzeb
|
10/26/2007: wuzzeb
|
||||||
[Chicken] Fix global variables of class member function pointers.
|
[Chicken] Fix global variables of class member function pointers.
|
||||||
Other minor fixes, so all tests in the chicken test suite now pass
|
Other minor fixes, so all tests in the chicken test suite now pass
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,10 @@ extern "C" {
|
||||||
# endif
|
# endif
|
||||||
#endif /* !INT2PTR */
|
#endif /* !INT2PTR */
|
||||||
|
|
||||||
|
#ifndef SvPV_nolen
|
||||||
|
# define SvPV_nolen(x) SvPV(x,PL_na)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef get_sv
|
#ifndef get_sv
|
||||||
# define get_sv perl_get_sv
|
# define get_sv perl_get_sv
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ SWIG_AsVal_dec(long)(SV *obj, long* val)
|
||||||
return SWIG_OK;
|
return SWIG_OK;
|
||||||
} else {
|
} else {
|
||||||
int dispatch = 0;
|
int dispatch = 0;
|
||||||
const char *nptr = SvPV(obj, PL_na);
|
const char *nptr = SvPV_nolen(obj);
|
||||||
if (nptr) {
|
if (nptr) {
|
||||||
char *endptr;
|
char *endptr;
|
||||||
long v;
|
long v;
|
||||||
|
|
@ -120,7 +120,7 @@ SWIG_AsVal_dec(unsigned long)(SV *obj, unsigned long *val)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int dispatch = 0;
|
int dispatch = 0;
|
||||||
const char *nptr = SvPV(obj, PL_na);
|
const char *nptr = SvPV_nolen(obj);
|
||||||
if (nptr) {
|
if (nptr) {
|
||||||
char *endptr;
|
char *endptr;
|
||||||
unsigned long v;
|
unsigned long v;
|
||||||
|
|
@ -183,7 +183,7 @@ SWIG_AsVal_dec(long long)(SV *obj, long long *val)
|
||||||
return SWIG_OK;
|
return SWIG_OK;
|
||||||
} else {
|
} else {
|
||||||
int dispatch = 0;
|
int dispatch = 0;
|
||||||
const char *nptr = SvPV(obj, PL_na);
|
const char *nptr = SvPV_nolen(obj);
|
||||||
if (nptr) {
|
if (nptr) {
|
||||||
char *endptr;
|
char *endptr;
|
||||||
long long v;
|
long long v;
|
||||||
|
|
@ -255,7 +255,7 @@ SWIG_AsVal_dec(unsigned long long)(SV *obj, unsigned long long *val)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int dispatch = 0;
|
int dispatch = 0;
|
||||||
const char *nptr = SvPV(obj, PL_na);
|
const char *nptr = SvPV_nolen(obj);
|
||||||
if (nptr) {
|
if (nptr) {
|
||||||
char *endptr;
|
char *endptr;
|
||||||
unsigned long long v;
|
unsigned long long v;
|
||||||
|
|
@ -308,7 +308,7 @@ SWIG_AsVal_dec(double)(SV *obj, double *val)
|
||||||
if (val) *val = (double) SvIV(obj);
|
if (val) *val = (double) SvIV(obj);
|
||||||
return SWIG_AddCast(SWIG_OK);
|
return SWIG_AddCast(SWIG_OK);
|
||||||
} else {
|
} else {
|
||||||
const char *nptr = SvPV(obj, PL_na);
|
const char *nptr = SvPV_nolen(obj);
|
||||||
if (nptr) {
|
if (nptr) {
|
||||||
char *endptr;
|
char *endptr;
|
||||||
double v = strtod(nptr, &endptr);
|
double v = strtod(nptr, &endptr);
|
||||||
|
|
|
||||||
|
|
@ -356,7 +356,7 @@ SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_
|
||||||
const char *c = 0;
|
const char *c = 0;
|
||||||
|
|
||||||
if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
|
if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
|
||||||
c = SvPV(obj, PL_na);
|
c = SvPV_nolen(obj);
|
||||||
/* Pointer values must start with leading underscore */
|
/* Pointer values must start with leading underscore */
|
||||||
if (*c != '_') return SWIG_ERROR;
|
if (*c != '_') return SWIG_ERROR;
|
||||||
c++;
|
c++;
|
||||||
|
|
|
||||||
|
|
@ -86,14 +86,14 @@ INPUT_TYPEMAP(unsigned char, SvUV);
|
||||||
%typemap(typecheck) bool &INPUT = bool;
|
%typemap(typecheck) bool &INPUT = bool;
|
||||||
|
|
||||||
%typemap(in) long long *INPUT($*1_ltype temp), long long &INPUT($*1_ltype temp) {
|
%typemap(in) long long *INPUT($*1_ltype temp), long long &INPUT($*1_ltype temp) {
|
||||||
temp = strtoll(SvPV($input,PL_na), 0, 0);
|
temp = strtoll(SvPV_nolen($input), 0, 0);
|
||||||
$1 = &temp;
|
$1 = &temp;
|
||||||
}
|
}
|
||||||
%typemap(typecheck) long long *INPUT = long long;
|
%typemap(typecheck) long long *INPUT = long long;
|
||||||
%typemap(typecheck) long long &INPUT = long long;
|
%typemap(typecheck) long long &INPUT = long long;
|
||||||
|
|
||||||
%typemap(in) unsigned long long *INPUT($*1_ltype temp), unsigned long long &INPUT($*1_ltype temp) {
|
%typemap(in) unsigned long long *INPUT($*1_ltype temp), unsigned long long &INPUT($*1_ltype temp) {
|
||||||
temp = strtoull(SvPV($input,PL_na), 0, 0);
|
temp = strtoull(SvPV_nolen($input), 0, 0);
|
||||||
$1 = &temp;
|
$1 = &temp;
|
||||||
}
|
}
|
||||||
%typemap(typecheck) unsigned long long *INPUT = unsigned long long;
|
%typemap(typecheck) unsigned long long *INPUT = unsigned long long;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue