add li_cpointer and newobject2 test-suite
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-sploving@11511 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
756f2645ce
commit
c85685b60b
7 changed files with 94 additions and 51 deletions
|
|
@ -24,8 +24,10 @@
|
|||
%constant int iconst = 37;
|
||||
%constant double fconst = 3.14;
|
||||
|
||||
%inline %{
|
||||
void constant_test(const int x) {
|
||||
printf("%i", x);
|
||||
}
|
||||
%}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,4 @@ catch
|
|||
printf("FOO is not defined (good)\n");
|
||||
end
|
||||
|
||||
constant_test(iconst);
|
||||
|
||||
exit
|
||||
|
|
|
|||
8
Examples/test-suite/scilab/li_cpointer_runme.sci
Normal file
8
Examples/test-suite/scilab/li_cpointer_runme.sci
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
exec loader.sce;
|
||||
|
||||
p = new_intp();
|
||||
intp_assign(p,3);
|
||||
|
||||
if intp_value(p) <> 3 then pause, end
|
||||
|
||||
exit
|
||||
15
Examples/test-suite/scilab/newobject2_runme.sci
Normal file
15
Examples/test-suite/scilab/newobject2_runme.sci
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
exec loader.sce;
|
||||
|
||||
x = makeFoo();
|
||||
if fooCount() <> 1 then pause, end
|
||||
|
||||
y = makeFoo();
|
||||
if fooCount() <> 2 then pause, end
|
||||
|
||||
delete_Foo(x);
|
||||
if fooCount() <> 1 then pause, end
|
||||
|
||||
delete_Foo(y);
|
||||
if fooCount() <> 0 then pause, end
|
||||
|
||||
exit
|
||||
1
Lib/scilab/cmalloc.i
Normal file
1
Lib/scilab/cmalloc.i
Normal file
|
|
@ -0,0 +1 @@
|
|||
%include <typemaps/cmalloc.swg>
|
||||
|
|
@ -16,16 +16,17 @@
|
|||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
/* Basic C types */
|
||||
%typemap(in) signed char (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned char (int *piAddrVar, int iRows, int iCols),
|
||||
short (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned short (int *piAddrVar, int iRows, int iCols),
|
||||
int (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned int (int *piAddrVar, int iRows, int iCols),
|
||||
long (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned long (int *piAddrVar, int iRows, int iCols),
|
||||
float (int *piAddrVar, int iRows, int iCols),
|
||||
double (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) signed char (int iRows, int iCols),
|
||||
unsigned char (int iRows, int iCols),
|
||||
short (int iRows, int iCols),
|
||||
unsigned short (int iRows, int iCols),
|
||||
int (int iRows, int iCols),
|
||||
unsigned int (int iRows, int iCols),
|
||||
long (int iRows, int iCols),
|
||||
unsigned long (int iRows, int iCols),
|
||||
float (int iRows, int iCols),
|
||||
double (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
double *_piData;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||
|
|
@ -37,7 +38,8 @@
|
|||
$1 = ($1_ltype)*_piData;
|
||||
}
|
||||
|
||||
%typemap(in) char (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) char (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
char *_pstStrings;
|
||||
int _piLength;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -51,16 +53,17 @@
|
|||
}
|
||||
|
||||
/* Pointers */
|
||||
%typemap(in) signed char * (int *piAddrVar),
|
||||
short * (int *piAddrVar),
|
||||
unsigned char * (int *piAddrVar),
|
||||
unsigned short * (int *piAddrVar),
|
||||
int * (int *piAddrVar),
|
||||
unsigned int * (int *piAddrVar),
|
||||
long * (int *piAddrVar),
|
||||
unsigned long * (int *piAddrVar),
|
||||
double * (int *piAddrVar),
|
||||
float * (int *piAddrVar) {
|
||||
%typemap(in) signed char *,
|
||||
short *,
|
||||
unsigned char *,
|
||||
unsigned short *,
|
||||
int *,
|
||||
unsigned int *,
|
||||
long *,
|
||||
unsigned long *,
|
||||
double *,
|
||||
float * {
|
||||
int *piAddrVar;
|
||||
void *_piData = NULL;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
||||
|
|
@ -71,7 +74,8 @@
|
|||
$1 = ($1_ltype)_piData;
|
||||
}
|
||||
|
||||
%typemap(in) char * (int *piAddrVar, int iRows, int iCols){
|
||||
%typemap(in) char * (int iRows, int iCols){
|
||||
int *piAddrVar;
|
||||
char *_pstStrings;
|
||||
int _piLength;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -84,7 +88,8 @@
|
|||
$1 = strdup(_pstStrings);
|
||||
}
|
||||
|
||||
%typemap(in) signed char [ANY] (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) signed char [ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
char *_piData;
|
||||
int index;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -99,8 +104,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(in) short [ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned char [ANY] (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) short [ANY] (int iRows, int iCols),
|
||||
unsigned char [ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
short *_piData;
|
||||
int index;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -115,11 +121,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(in) unsigned short [ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
int [ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned int [ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
long [ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned long [ANY] (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) unsigned short [ANY] (int iRows, int iCols),
|
||||
int [ANY] (int iRows, int iCols),
|
||||
unsigned int [ANY] (int iRows, int iCols),
|
||||
long [ANY] (int iRows, int iCols),
|
||||
unsigned long [ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
int *_piData;
|
||||
int index;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -134,8 +141,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(in) double [ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
float [ANY] (int *piAddrVar, int iRows, int iCols){
|
||||
%typemap(in) double [ANY] (int iRows, int iCols),
|
||||
float [ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
double *_piData;
|
||||
int index;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -150,7 +158,8 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(in) char [ANY] (int *piAddrVar, int iRows, int iCols){
|
||||
%typemap(in) char [ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
char *_pstStrings;
|
||||
int _piLength;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -164,7 +173,8 @@
|
|||
}
|
||||
|
||||
/* Arrays */
|
||||
%typemap(in) signed char [ANY][ANY] (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) signed char [ANY][ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
char *_piData;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||
|
|
@ -186,8 +196,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(in) short [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned char [ANY][ANY] (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) short [ANY][ANY] (int iRows, int iCols),
|
||||
unsigned char [ANY][ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
short *_piData;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||
|
|
@ -209,11 +220,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(in) unsigned short [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
int [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned int [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
long [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
unsigned long [ANY][ANY] (int *piAddrVar, int iRows, int iCols){
|
||||
%typemap(in) unsigned short [ANY][ANY] (int iRows, int iCols),
|
||||
int [ANY][ANY] (int iRows, int iCols),
|
||||
unsigned int [ANY][ANY] (int iRows, int iCols),
|
||||
long [ANY][ANY] (int iRows, int iCols),
|
||||
unsigned long [ANY][ANY] (int iRows, int iCols){
|
||||
int *piAddrVar;
|
||||
int *_piData;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||
|
|
@ -236,8 +248,9 @@
|
|||
}
|
||||
|
||||
|
||||
%typemap(in) double [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
||||
float [ANY][ANY] (int *piAddrVar, int iRows, int iCols) {
|
||||
%typemap(in) double [ANY][ANY] (int iRows, int iCols),
|
||||
float [ANY][ANY] (int iRows, int iCols) {
|
||||
int *piAddrVar;
|
||||
double *_piData;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||
|
|
@ -259,7 +272,8 @@
|
|||
}
|
||||
}
|
||||
|
||||
%typemap(in) SWIGTYPE * (int *piAddrVar) {
|
||||
%typemap(in) SWIGTYPE * {
|
||||
int *piAddrVar;
|
||||
void *_piData = NULL;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
||||
|
|
@ -271,6 +285,7 @@
|
|||
}
|
||||
|
||||
%typemap(in) SWIGTYPE {
|
||||
int *piAddrVar;
|
||||
void *_piData = NULL;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
||||
|
|
@ -614,7 +629,7 @@
|
|||
$1 = _pstStrings;
|
||||
}
|
||||
|
||||
%typemap(varin,noblock=1) SWIGTYPE *(int *piAddrVar) {
|
||||
%typemap(varin,noblock=1) SWIGTYPE * {
|
||||
void *_piData = NULL;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
||||
|
|
@ -625,7 +640,7 @@
|
|||
$1 = ($1_ltype)_piData;
|
||||
}
|
||||
|
||||
%typemap(varin,noblock=1) SWIGTYPE [ANY] (int *piAddrVar) {
|
||||
%typemap(varin,noblock=1) SWIGTYPE [ANY] {
|
||||
void *_piData = NULL;
|
||||
int index;
|
||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||
|
|
@ -800,3 +815,4 @@
|
|||
* ------------------------------------------------------------ */
|
||||
|
||||
%apply int { enum SWIGTYPE };
|
||||
%apply int { size_t };
|
||||
|
|
|
|||
|
|
@ -234,8 +234,11 @@ public:
|
|||
p = nextSibling(p);
|
||||
continue;
|
||||
}
|
||||
String *getargs = NewString("");
|
||||
Printv(getargs, tm, NIL);
|
||||
String *getargs = NewString("");
|
||||
if (j >= num_required)
|
||||
Printf(getargs, "if (Rhs > %d) {\n%s\n}", j, tm);
|
||||
else
|
||||
Printv(getargs, tm, NIL);
|
||||
Printv(f->code, getargs, "\n", NIL);
|
||||
Delete(getargs);
|
||||
p = Getattr(p, "tmap:in:next");
|
||||
|
|
@ -307,7 +310,7 @@ public:
|
|||
else {
|
||||
flag = 1;
|
||||
}
|
||||
Printf(f->def, "CheckRhs(%d, %d);\n",num_required,num_required);
|
||||
Printf(f->def, "CheckRhs(%d, %d);\n",num_required,num_arguments);
|
||||
Printf(f->def, "CheckLhs(%d, %d);\n",out_required,out_required);
|
||||
|
||||
/* Insert the order of output parameters*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue