All but four test cases work. I'm going to leave these for afterward.

I've moved completely away from the "value" type to "caml_value_t".  Although
a bit painful, this will make things easier for me.  I seem to be seeing
quite a few things that use the word value as a function, type, etc, and
wanted to get something that doesn't collide.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4593 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Art Yerkes 2003-03-20 20:51:05 +00:00
commit 9ac1568443
6 changed files with 172 additions and 129 deletions

View file

@ -15,30 +15,6 @@
#include <string>
/* base class for director exceptions */
class SWIG_DIRECTOR_EXCEPTION {
protected:
std::string _msg;
public:
SWIG_DIRECTOR_EXCEPTION(const char* msg="") {
}
const char *getMessage() { return _msg.c_str(); }
virtual ~SWIG_DIRECTOR_EXCEPTION() { }
};
/* type mismatch in the return CAML_VALUE from a ocaml method call */
class SWIG_DIRECTOR_TYPE_MISMATCH: public SWIG_DIRECTOR_EXCEPTION {
public:
SWIG_DIRECTOR_TYPE_MISMATCH(const char* msg="") {
_msg = "Swig director type mismatch: ";
_msg += msg;
failwith((char *)_msg.c_str());
}
};
/* any ocaml exception that occurs during a director method call */
class SWIG_DIRECTOR_METHOD_EXCEPTION: public SWIG_DIRECTOR_EXCEPTION { };
/* simple thread abstraction for pthreads or win32 */
#ifdef __THREAD__
#define __PTHREAD__

View file

@ -84,17 +84,17 @@ extern "C" {
SWIGSTATIC void caml_print_list( CAML_VALUE v );
SWIGSTATIC void caml_print_val( CAML_VALUE v ) {
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_bool:
if( Bool_val(Field(v,0)) ) fprintf( stderr, "true " );
if( Bool_val(SWIG_Field(v,0)) ) fprintf( stderr, "true " );
else fprintf( stderr, "false " );
break;
case C_char:
case C_uchar:
fprintf( stderr, "'%c' (\\%03d) ",
(Int_val(Field(v,0)) >= ' ' &&
Int_val(Field(v,0)) < 127) ? Int_val(Field(v,0)) : '.',
Int_val(Field(v,0)) );
(Int_val(SWIG_Field(v,0)) >= ' ' &&
Int_val(SWIG_Field(v,0)) < 127) ? Int_val(SWIG_Field(v,0)) : '.',
Int_val(SWIG_Field(v,0)) );
break;
case C_short:
case C_ushort:
@ -117,7 +117,7 @@ extern "C" {
case C_ptr:
{
void *vout = 0;
swig_type_info *ty = (swig_type_info *)(long)Int64_val(Field(v,1));
swig_type_info *ty = (swig_type_info *)(long)SWIG_Int64_val(SWIG_Field(v,1));
caml_ptr_val_internal(v,&vout,0);
fprintf( stderr, "PTR(%p,%s) ",
vout,
@ -127,15 +127,15 @@ extern "C" {
case C_array:
{
unsigned int i;
for( i = 0; i < Wosize_val( Field(v,0) ); i++ )
caml_print_val( Field(Field(v,0),i) );
for( i = 0; i < Wosize_val( SWIG_Field(v,0) ); i++ )
caml_print_val( SWIG_Field(SWIG_Field(v,0),i) );
}
break;
case C_list:
caml_print_list( Field(v,0) );
caml_print_list( SWIG_Field(v,0) );
break;
case C_obj:
fprintf( stderr, "OBJ(%p) ", (void *)Field(v,0) );
fprintf( stderr, "OBJ(%p) ", (void *)SWIG_Field(v,0) );
break;
case C_string:
{
@ -151,9 +151,9 @@ extern "C" {
CAMLparam1(v);
while( v && Is_block(v) ) {
fprintf( stderr, "[ " );
caml_print_val( Field(v,0) );
caml_print_val( SWIG_Field(v,0) );
fprintf( stderr, "]\n" );
v = Field(v,1);
v = SWIG_Field(v,1);
}
}
@ -161,15 +161,15 @@ extern "C" {
CAMLparam1(lst);
int i = 0;
while( i < n && lst && Is_block(lst) ) {
i++; lst = Field(lst,1);
i++; lst = SWIG_Field(lst,1);
}
if( lst == Val_unit ) CAMLreturn(Val_unit);
else CAMLreturn(Field(lst,0));
else CAMLreturn(SWIG_Field(lst,0));
}
SWIGSTATIC CAML_VALUE caml_list_append( CAML_VALUE lst, CAML_VALUE elt ) {
CAMLparam2(lst,elt);
CAMLlocal3(v,vt,lh);
SWIG_CAMLlocal3(v,vt,lh);
lh = Val_unit;
v = Val_unit;
@ -179,24 +179,24 @@ extern "C" {
while( lst && Is_block(lst) ) {
if( v && v != Val_unit ) {
vt = alloc_tuple(2);
Store_field(v,1,vt);
SWIG_Store_field(v,1,vt);
v = vt;
} else {
v = lh = alloc_tuple(2);
}
Store_field(v,0,Field(lst,0));
lst = Field(lst,1);
SWIG_Store_field(v,0,SWIG_Field(lst,0));
lst = SWIG_Field(lst,1);
}
if( v && Is_block(v) ) {
vt = alloc_tuple(2);
Store_field(v,1,vt);
SWIG_Store_field(v,1,vt);
v = vt;
} else {
v = lh = alloc_tuple(2);
}
Store_field(v,0,elt);
Store_field(v,1,Val_unit);
SWIG_Store_field(v,0,elt);
SWIG_Store_field(v,1,Val_unit);
CAMLreturn(lh);
}
@ -204,21 +204,21 @@ extern "C" {
SWIGSTATIC int caml_list_length( CAML_VALUE lst ) {
CAMLparam1(lst);
int i = 0;
while( lst && Is_block(lst) ) { i++; lst = Field(lst,1); }
while( lst && Is_block(lst) ) { i++; lst = SWIG_Field(lst,1); }
CAMLreturn(i);
}
SWIGSTATIC void caml_array_set( CAML_VALUE arr, int n, CAML_VALUE item ) {
CAMLparam2(arr,item);
Store_field(Field(arr,0),n,item);
SWIG_Store_field(SWIG_Field(arr,0),n,item);
CAMLreturn0;
}
SWIGSTATIC value caml_array_nth( CAML_VALUE arr, int n ) {
CAMLparam1(arr);
if( Tag_val(arr) == C_array )
CAMLreturn(Field(Field(arr,0),n));
else if( Tag_val(arr) == C_list )
if( SWIG_Tag_val(arr) == C_array )
CAMLreturn(SWIG_Field(SWIG_Field(arr,0),n));
else if( SWIG_Tag_val(arr) == C_list )
CAMLreturn(caml_list_nth(arr,0));
else
failwith("Need array or list");
@ -226,9 +226,9 @@ extern "C" {
SWIGSTATIC int caml_array_len( CAML_VALUE arr ) {
CAMLparam1(arr);
if( Tag_val(arr) == C_array )
CAMLreturn(Wosize_val(Field(arr,0)));
else if( Tag_val(arr) == C_list )
if( SWIG_Tag_val(arr) == C_array )
CAMLreturn(Wosize_val(SWIG_Field(arr,0)));
else if( SWIG_Tag_val(arr) == C_list )
CAMLreturn(caml_list_length(arr));
else
failwith("Need array or list");
@ -252,125 +252,125 @@ extern "C" {
SWIGSTATIC value caml_array_new( int n ) {
CAMLparam0();
CAMLlocal1(vv);
SWIG_CAMLlocal1(vv);
vv = caml_swig_alloc(1,C_array);
Store_field(vv,0,alloc_tuple(n));
SWIG_Store_field(vv,0,alloc_tuple(n));
CAMLreturn(vv);
}
SWIGSTATIC CAML_VALUE caml_val_bool( int b ) {
CAMLparam0();
CAMLlocal1(bv);
SWIG_CAMLlocal1(bv);
bv = caml_swig_alloc(1,C_bool);
Store_field(bv,0,Val_bool(b));
SWIG_Store_field(bv,0,Val_bool(b));
CAMLreturn(bv);
}
SWIGSTATIC CAML_VALUE caml_val_char( char c ) {
CAMLparam0();
CAMLlocal1(cv);
SWIG_CAMLlocal1(cv);
cv = caml_swig_alloc(1,C_char);
Store_field(cv,0,Val_int(c));
SWIG_Store_field(cv,0,Val_int(c));
CAMLreturn(cv);
}
SWIGSTATIC CAML_VALUE caml_val_uchar( unsigned char uc ) {
CAMLparam0();
CAMLlocal1(ucv);
SWIG_CAMLlocal1(ucv);
ucv = caml_swig_alloc(1,C_uchar);
Store_field(ucv,0,Val_int(uc));
SWIG_Store_field(ucv,0,Val_int(uc));
CAMLreturn(ucv);
}
SWIGSTATIC CAML_VALUE caml_val_short( short s ) {
CAMLparam0();
CAMLlocal1(sv);
SWIG_CAMLlocal1(sv);
sv = caml_swig_alloc(1,C_short);
Store_field(sv,0,Val_int(s));
SWIG_Store_field(sv,0,Val_int(s));
CAMLreturn(sv);
}
SWIGSTATIC CAML_VALUE caml_val_ushort( unsigned short us ) {
CAMLparam0();
CAMLlocal1(usv);
SWIG_CAMLlocal1(usv);
usv = caml_swig_alloc(1,C_ushort);
Store_field(usv,0,Val_int(us));
SWIG_Store_field(usv,0,Val_int(us));
CAMLreturn(usv);
}
SWIGSTATIC CAML_VALUE caml_val_int( int i ) {
CAMLparam0();
CAMLlocal1(iv);
SWIG_CAMLlocal1(iv);
iv = caml_swig_alloc(1,C_int);
Store_field(iv,0,Val_int(i));
SWIG_Store_field(iv,0,Val_int(i));
CAMLreturn(iv);
}
SWIGSTATIC CAML_VALUE caml_val_uint( unsigned int ui ) {
CAMLparam0();
CAMLlocal1(uiv);
SWIG_CAMLlocal1(uiv);
uiv = caml_swig_alloc(1,C_int);
Store_field(uiv,0,Val_int(ui));
SWIG_Store_field(uiv,0,Val_int(ui));
CAMLreturn(uiv);
}
SWIGSTATIC CAML_VALUE caml_val_long( long l ) {
CAMLparam0();
CAMLlocal1(lv);
SWIG_CAMLlocal1(lv);
lv = caml_swig_alloc(1,C_int64);
Store_field(lv,0,copy_int64(l));
SWIG_Store_field(lv,0,copy_int64(l));
CAMLreturn(lv);
}
SWIGSTATIC CAML_VALUE caml_val_ulong( unsigned long ul ) {
CAMLparam0();
CAMLlocal1(ulv);
SWIG_CAMLlocal1(ulv);
ulv = caml_swig_alloc(1,C_int64);
Store_field(ulv,0,copy_int64(ul));
SWIG_Store_field(ulv,0,copy_int64(ul));
CAMLreturn(ulv);
}
SWIGSTATIC CAML_VALUE caml_val_float( float f ) {
CAMLparam0();
CAMLlocal1(fv);
SWIG_CAMLlocal1(fv);
fv = caml_swig_alloc(1,C_float);
Store_field(fv,0,copy_double(f));
SWIG_Store_field(fv,0,copy_double(f));
CAMLreturn(fv);
}
SWIGSTATIC CAML_VALUE caml_val_double( double d ) {
CAMLparam0();
CAMLlocal1(fv);
SWIG_CAMLlocal1(fv);
fv = caml_swig_alloc(1,C_double);
Store_field(fv,0,copy_double(d));
SWIG_Store_field(fv,0,copy_double(d));
CAMLreturn(fv);
}
SWIGSTATIC CAML_VALUE caml_val_ptr( void *p, swig_type_info *info ) {
CAMLparam0();
CAMLlocal1(vv);
SWIG_CAMLlocal1(vv);
vv = caml_swig_alloc(2,C_ptr);
Store_field(vv,0,copy_int64((long)p));
Store_field(vv,1,copy_int64((long)info));
SWIG_Store_field(vv,0,copy_int64((long)p));
SWIG_Store_field(vv,1,copy_int64((long)info));
CAMLreturn(vv);
}
SWIGSTATIC CAML_VALUE caml_val_string( const char *p ) {
CAMLparam0();
CAMLlocal1(vv);
SWIG_CAMLlocal1(vv);
if( !p ) CAMLreturn(caml_val_ptr( (void *)p, 0 ));
vv = caml_swig_alloc(1,C_string);
Store_field(vv,0,copy_string(p));
SWIG_Store_field(vv,0,copy_string(p));
CAMLreturn(vv);
}
SWIGSTATIC CAML_VALUE caml_val_string_len( const char *p, int len ) {
CAMLparam0();
CAMLlocal1(vv);
SWIG_CAMLlocal1(vv);
if( !p || len < 0 ) CAMLreturn(caml_val_ptr( (void *)p, 0 ));
vv = caml_swig_alloc(1,C_string);
Store_field(vv,0,alloc_string(len));
memcpy(String_val(Field(vv,0)),p,len);
SWIG_Store_field(vv,0,alloc_string(len));
memcpy(String_val(SWIG_Field(vv,0)),p,len);
CAMLreturn(vv);
}
@ -385,28 +385,28 @@ extern "C" {
CAMLparam1(v);
if( !Is_block(v) ) return 0;
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_bool:
case C_char:
case C_uchar:
case C_short:
case C_ushort:
case C_int:
CAMLreturn(Int_val(Field(v,0)));
CAMLreturn(Int_val(SWIG_Field(v,0)));
case C_uint:
case C_int32:
CAMLreturn(Int32_val(Field(v,0)));
CAMLreturn(Int32_val(SWIG_Field(v,0)));
case C_int64:
CAMLreturn((long)Int64_val(Field(v,0)));
CAMLreturn((long)SWIG_Int64_val(SWIG_Field(v,0)));
case C_float:
case C_double:
CAMLreturn((long)Double_val(Field(v,0)));
CAMLreturn((long)Double_val(SWIG_Field(v,0)));
case C_string:
CAMLreturn((long)String_val(Field(v,0)));
CAMLreturn((long)String_val(SWIG_Field(v,0)));
case C_ptr:
CAMLreturn((long)Int64_val(Field(Field(v,0),0)));
CAMLreturn((long)SWIG_Int64_val(SWIG_Field(SWIG_Field(v,0),0)));
case C_enum: {
CAMLlocal1(ret);
SWIG_CAMLlocal1(ret);
CAML_VALUE *enum_to_int = caml_named_value(SWIG_MODULE "_enum_to_int");
if( !name ) failwith( "Not an enum conversion" );
ret = callback2(*enum_to_int,*caml_named_value(name),v);
@ -424,24 +424,24 @@ extern "C" {
SWIGSTATIC double caml_double_val( CAML_VALUE v ) {
CAMLparam1(v);
if( !Is_block(v) ) return 0.0;
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_bool:
case C_char:
case C_uchar:
case C_short:
case C_ushort:
case C_int:
CAMLreturn(Int_val(Field(v,0)));
CAMLreturn(Int_val(SWIG_Field(v,0)));
case C_uint:
case C_int32:
CAMLreturn(Int32_val(Field(v,0)));
CAMLreturn(Int32_val(SWIG_Field(v,0)));
case C_int64:
CAMLreturn(Int64_val(Field(v,0)));
CAMLreturn(SWIG_Int64_val(SWIG_Field(v,0)));
case C_float:
case C_double:
CAMLreturn(Double_val(Field(v,0)));
CAMLreturn(Double_val(SWIG_Field(v,0)));
default:
fprintf( stderr, "Unknown block tag %d\n", Tag_val(v) );
fprintf( stderr, "Unknown block tag %d\n", SWIG_Tag_val(v) );
failwith("No conversion to double");
}
}
@ -457,7 +457,7 @@ extern "C" {
CAMLreturn(0);
}
if( !Is_block(v) ) return -1;
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_int:
if( !caml_long_val( v ) ) {
*out = 0;
@ -473,11 +473,11 @@ extern "C" {
(callback(*caml_named_value("caml_obj_ptr"),v),
out,descriptor));
case C_string:
outptr = (void *)String_val(Field(v,0));
outptr = (void *)String_val(SWIG_Field(v,0));
break;
case C_ptr:
outptr = (void *)(long)Int64_val(Field(v,0));
outdescr = (swig_type_info *)(long)Int64_val(Field(v,1));
outptr = (void *)(long)SWIG_Int64_val(SWIG_Field(v,0));
outdescr = (swig_type_info *)(long)SWIG_Int64_val(SWIG_Field(v,1));
break;
default:
*out = 0;
@ -509,7 +509,7 @@ extern "C" {
if( !Is_block(v) ) return 0;
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_bool:
case C_ptr:
case C_string:
@ -524,7 +524,7 @@ extern "C" {
if( !Is_block(v) ) return 0;
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_char:
case C_uchar:
case C_short:
@ -544,7 +544,7 @@ extern "C" {
CAMLparam1(v);
if( !Is_block(v) ) return 0;
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_float:
case C_double:
CAMLreturn(1);
@ -558,7 +558,7 @@ extern "C" {
CAMLparam1(v);
if( !Is_block(v) ) return 0;
switch( Tag_val(v) ) {
switch( SWIG_Tag_val(v) ) {
case C_string:
case C_ptr:
case C_int64:
@ -572,3 +572,4 @@ extern "C" {
#ifdef __cplusplus
}
#endif
#undef value

View file

@ -16,8 +16,9 @@ SWIGEXT {
#else
#define SWIGEXT
#endif
#define alloc caml_alloc
#define value caml_value_t
#define CAML_VALUE caml_value_t
#define alloc caml_alloc
#include <caml/alloc.h>
#include <caml/custom.h>
#include <caml/mlvalues.h>
@ -26,7 +27,59 @@ SWIGEXT {
#include <caml/fail.h>
#include <caml/misc.h>
#undef alloc
#define CAML_VALUE value
// Adapted from memory.h and mlvalues.h
#define SWIG_CAMLlocal1(x) \
caml_value_t x = 0; \
CAMLxparam1 (x)
#define SWIG_CAMLlocal2(x, y) \
caml_value_t x = 0, y = 0; \
CAMLxparam2 (x, y)
#define SWIG_CAMLlocal3(x, y, z) \
caml_value_t x = 0, y = 0, z = 0; \
CAMLxparam3 (x, y, z)
#define SWIG_CAMLlocal4(x, y, z, t) \
caml_value_t x = 0, y = 0, z = 0, t = 0; \
CAMLxparam4 (x, y, z, t)
#define SWIG_CAMLlocal5(x, y, z, t, u) \
caml_value_t x = 0, y = 0, z = 0, t = 0, u = 0; \
CAMLxparam5 (x, y, z, t, u)
#define SWIG_CAMLlocalN(x, size) \
caml_value_t x [(size)] = { 0, /* 0, 0, ... */ }; \
CAMLxparamN (x, (size))
#define SWIG_Field(x, i) (((caml_value_t *)(x)) [i]) /* Also an l-value. */
#define SWIG_Store_field(block, offset, val) do{ \
mlsize_t caml__temp_offset = (offset); \
caml_value_t caml__temp_val = (val); \
modify (&SWIG_Field ((block), caml__temp_offset), caml__temp_val); \
}while(0)
#define SWIG_Data_custom_val(v) ((void *) &SWIG_Field((v), 1))
#ifdef ARCH_BIG_ENDIAN
#define SWIG_Tag_val(val) (((unsigned char *) (val)) [-1])
/* Also an l-value. */
#define SWIG_Tag_hp(hp) (((unsigned char *) (hp)) [sizeof(caml_value_t)-1])
/* Also an l-value. */
#else
#define SWIG_Tag_val(val) (((unsigned char *) (val)) [-sizeof(caml_value_t)])
/* Also an l-value. */
#define SWIG_Tag_hp(hp) (((unsigned char *) (hp)) [0])
/* Also an l-value. */
#endif
#ifndef ARCH_ALIGN_INT64
#define SWIG_Int64_val(v) (*((int64 *) SWIG_Data_custom_val(v)))
#else
CAMLextern int64 Int64_val(caml_value_t v);
#define SWIG_Int64_val(v) Int64_val(v)
#endif
#if defined(SWIG_NOINCLUDE)
# define SWIGSTATIC

View file

@ -104,17 +104,30 @@ namespace std {
}
}
%typemap(in) string * (std::string *temp) {
if (caml_ptr_check($input)) {
temp = new std::string((char *)caml_ptr_val($input,0));
$1 = temp;
} else {
SWIG_exception(SWIG_TypeError, "string expected");
}
}
%typemap(free) string * (std::string *temp) {
delete temp;
}
%typemap(argout) string & {
caml_list_append(swig_result,caml_val_string_len($1->c_str(),
$1->size()));
caml_list_append(swig_result,caml_val_string_len((*$1).c_str(),
(*$1).size()));
}
%typemap(out) string {
$result = caml_val_string_len($1.c_str(),$1.size());
}
%typemap(out) const string & {
$result = caml_val_string_len($1.c_str(),$1.size());
%typemap(out) string * {
$result = caml_val_string_len((*$1).c_str(),(*$1).size());
}
}

View file

@ -7,7 +7,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) char, signed char, const char &, const signed char & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_char: $1 = 1; break;
default: $1 = 0; break;
}
@ -17,7 +17,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) unsigned char, const unsigned char & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_uchar: $1 = 1; break;
default: $1 = 0; break;
}
@ -27,7 +27,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) short, signed short, const short &, const signed short &, wchar_t {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_short: $1 = 1; break;
default: $1 = 0; break;
}
@ -37,7 +37,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) unsigned short, const unsigned short & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_ushort: $1 = 1; break;
default: $1 = 0; break;
}
@ -50,7 +50,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) int, signed int, const int &, const signed int &, enum SWIGTYPE {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_int: $1 = 1; break;
default: $1 = 0; break;
}
@ -60,7 +60,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) unsigned int, const unsigned int & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_uint: $1 = 1; break;
case C_int32: $1 = 1; break;
default: $1 = 0; break;
@ -71,7 +71,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) long, signed long, unsigned long, long long, signed long long, unsigned long long, const long &, const signed long &, const unsigned long &, const long long &, const signed long long &, const unsigned long long & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_int64: $1 = 1; break;
default: $1 = 0; break;
}
@ -81,7 +81,7 @@
%typecheck(SWIG_TYPECHECK_INTEGER) bool, oc_bool, BOOL, const bool &, const oc_bool &, const BOOL & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_bool: $1 = 1; break;
default: $1 = 0; break;
}
@ -91,7 +91,7 @@
%typecheck(SWIG_TYPECHECK_DOUBLE) float, const float & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_float: $1 = 1; break;
default: $1 = 0; break;
}
@ -101,7 +101,7 @@
%typecheck(SWIG_TYPECHECK_DOUBLE) double, const double & {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_double: $1 = 1; break;
default: $1 = 0; break;
}
@ -111,11 +111,11 @@
%typecheck(SWIG_TYPECHECK_STRING) char * {
if( !Is_block($input) ) $1 = 0;
else {
switch( Tag_val($input) ) {
switch( SWIG_Tag_val($input) ) {
case C_string: $1 = 1; break;
case C_ptr: {
swig_type_info *typeinfo =
(swig_type_info *)(long)Int64_val(Field($input,1));
(swig_type_info *)(long)SWIG_Int64_val(SWIG_Field($input,1));
$1 = SWIG_TypeCheck("char *",typeinfo) ||
SWIG_TypeCheck("signed char *",typeinfo) ||
SWIG_TypeCheck("unsigned char *",typeinfo) ||