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 int iconst = 37;
|
||||||
%constant double fconst = 3.14;
|
%constant double fconst = 3.14;
|
||||||
|
|
||||||
|
%inline %{
|
||||||
void constant_test(const int x) {
|
void constant_test(const int x) {
|
||||||
printf("%i", x);
|
printf("%i", x);
|
||||||
}
|
}
|
||||||
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,4 @@ catch
|
||||||
printf("FOO is not defined (good)\n");
|
printf("FOO is not defined (good)\n");
|
||||||
end
|
end
|
||||||
|
|
||||||
constant_test(iconst);
|
|
||||||
|
|
||||||
exit
|
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 */
|
/* Basic C types */
|
||||||
%typemap(in) signed char (int *piAddrVar, int iRows, int iCols),
|
%typemap(in) signed char (int iRows, int iCols),
|
||||||
unsigned char (int *piAddrVar, int iRows, int iCols),
|
unsigned char (int iRows, int iCols),
|
||||||
short (int *piAddrVar, int iRows, int iCols),
|
short (int iRows, int iCols),
|
||||||
unsigned short (int *piAddrVar, int iRows, int iCols),
|
unsigned short (int iRows, int iCols),
|
||||||
int (int *piAddrVar, int iRows, int iCols),
|
int (int iRows, int iCols),
|
||||||
unsigned int (int *piAddrVar, int iRows, int iCols),
|
unsigned int (int iRows, int iCols),
|
||||||
long (int *piAddrVar, int iRows, int iCols),
|
long (int iRows, int iCols),
|
||||||
unsigned long (int *piAddrVar, int iRows, int iCols),
|
unsigned long (int iRows, int iCols),
|
||||||
float (int *piAddrVar, int iRows, int iCols),
|
float (int iRows, int iCols),
|
||||||
double (int *piAddrVar, int iRows, int iCols) {
|
double (int iRows, int iCols) {
|
||||||
|
int *piAddrVar;
|
||||||
double *_piData;
|
double *_piData;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||||
|
|
@ -37,7 +38,8 @@
|
||||||
$1 = ($1_ltype)*_piData;
|
$1 = ($1_ltype)*_piData;
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) char (int *piAddrVar, int iRows, int iCols) {
|
%typemap(in) char (int iRows, int iCols) {
|
||||||
|
int *piAddrVar;
|
||||||
char *_pstStrings;
|
char *_pstStrings;
|
||||||
int _piLength;
|
int _piLength;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
@ -51,16 +53,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pointers */
|
/* Pointers */
|
||||||
%typemap(in) signed char * (int *piAddrVar),
|
%typemap(in) signed char *,
|
||||||
short * (int *piAddrVar),
|
short *,
|
||||||
unsigned char * (int *piAddrVar),
|
unsigned char *,
|
||||||
unsigned short * (int *piAddrVar),
|
unsigned short *,
|
||||||
int * (int *piAddrVar),
|
int *,
|
||||||
unsigned int * (int *piAddrVar),
|
unsigned int *,
|
||||||
long * (int *piAddrVar),
|
long *,
|
||||||
unsigned long * (int *piAddrVar),
|
unsigned long *,
|
||||||
double * (int *piAddrVar),
|
double *,
|
||||||
float * (int *piAddrVar) {
|
float * {
|
||||||
|
int *piAddrVar;
|
||||||
void *_piData = NULL;
|
void *_piData = NULL;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
||||||
|
|
@ -71,7 +74,8 @@
|
||||||
$1 = ($1_ltype)_piData;
|
$1 = ($1_ltype)_piData;
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) char * (int *piAddrVar, int iRows, int iCols){
|
%typemap(in) char * (int iRows, int iCols){
|
||||||
|
int *piAddrVar;
|
||||||
char *_pstStrings;
|
char *_pstStrings;
|
||||||
int _piLength;
|
int _piLength;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
@ -84,7 +88,8 @@
|
||||||
$1 = strdup(_pstStrings);
|
$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;
|
char *_piData;
|
||||||
int index;
|
int index;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
@ -99,8 +104,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) short [ANY] (int *piAddrVar, int iRows, int iCols),
|
%typemap(in) short [ANY] (int iRows, int iCols),
|
||||||
unsigned char [ANY] (int *piAddrVar, int iRows, int iCols) {
|
unsigned char [ANY] (int iRows, int iCols) {
|
||||||
|
int *piAddrVar;
|
||||||
short *_piData;
|
short *_piData;
|
||||||
int index;
|
int index;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
@ -115,11 +121,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) unsigned short [ANY] (int *piAddrVar, int iRows, int iCols),
|
%typemap(in) unsigned short [ANY] (int iRows, int iCols),
|
||||||
int [ANY] (int *piAddrVar, int iRows, int iCols),
|
int [ANY] (int iRows, int iCols),
|
||||||
unsigned int [ANY] (int *piAddrVar, int iRows, int iCols),
|
unsigned int [ANY] (int iRows, int iCols),
|
||||||
long [ANY] (int *piAddrVar, int iRows, int iCols),
|
long [ANY] (int iRows, int iCols),
|
||||||
unsigned long [ANY] (int *piAddrVar, int iRows, int iCols) {
|
unsigned long [ANY] (int iRows, int iCols) {
|
||||||
|
int *piAddrVar;
|
||||||
int *_piData;
|
int *_piData;
|
||||||
int index;
|
int index;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
@ -134,8 +141,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) double [ANY] (int *piAddrVar, int iRows, int iCols),
|
%typemap(in) double [ANY] (int iRows, int iCols),
|
||||||
float [ANY] (int *piAddrVar, int iRows, int iCols){
|
float [ANY] (int iRows, int iCols) {
|
||||||
|
int *piAddrVar;
|
||||||
double *_piData;
|
double *_piData;
|
||||||
int index;
|
int index;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
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;
|
char *_pstStrings;
|
||||||
int _piLength;
|
int _piLength;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
@ -164,7 +173,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Arrays */
|
/* 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;
|
char *_piData;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||||
|
|
@ -186,8 +196,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) short [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
%typemap(in) short [ANY][ANY] (int iRows, int iCols),
|
||||||
unsigned char [ANY][ANY] (int *piAddrVar, int iRows, int iCols) {
|
unsigned char [ANY][ANY] (int iRows, int iCols) {
|
||||||
|
int *piAddrVar;
|
||||||
short *_piData;
|
short *_piData;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||||
|
|
@ -209,11 +220,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) unsigned short [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
%typemap(in) unsigned short [ANY][ANY] (int iRows, int iCols),
|
||||||
int [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
int [ANY][ANY] (int iRows, int iCols),
|
||||||
unsigned int [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
unsigned int [ANY][ANY] (int iRows, int iCols),
|
||||||
long [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
long [ANY][ANY] (int iRows, int iCols),
|
||||||
unsigned long [ANY][ANY] (int *piAddrVar, int iRows, int iCols){
|
unsigned long [ANY][ANY] (int iRows, int iCols){
|
||||||
|
int *piAddrVar;
|
||||||
int *_piData;
|
int *_piData;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||||
|
|
@ -236,8 +248,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
%typemap(in) double [ANY][ANY] (int *piAddrVar, int iRows, int iCols),
|
%typemap(in) double [ANY][ANY] (int iRows, int iCols),
|
||||||
float [ANY][ANY] (int *piAddrVar, int iRows, int iCols) {
|
float [ANY][ANY] (int iRows, int iCols) {
|
||||||
|
int *piAddrVar;
|
||||||
double *_piData;
|
double *_piData;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
getVarDimension(piAddrVar, &iRows, &iCols);
|
getVarDimension(piAddrVar, &iRows, &iCols);
|
||||||
|
|
@ -259,7 +272,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) SWIGTYPE * (int *piAddrVar) {
|
%typemap(in) SWIGTYPE * {
|
||||||
|
int *piAddrVar;
|
||||||
void *_piData = NULL;
|
void *_piData = NULL;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
||||||
|
|
@ -271,6 +285,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in) SWIGTYPE {
|
%typemap(in) SWIGTYPE {
|
||||||
|
int *piAddrVar;
|
||||||
void *_piData = NULL;
|
void *_piData = NULL;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
||||||
|
|
@ -614,7 +629,7 @@
|
||||||
$1 = _pstStrings;
|
$1 = _pstStrings;
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varin,noblock=1) SWIGTYPE *(int *piAddrVar) {
|
%typemap(varin,noblock=1) SWIGTYPE * {
|
||||||
void *_piData = NULL;
|
void *_piData = NULL;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
||||||
|
|
@ -625,7 +640,7 @@
|
||||||
$1 = ($1_ltype)_piData;
|
$1 = ($1_ltype)_piData;
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varin,noblock=1) SWIGTYPE [ANY] (int *piAddrVar) {
|
%typemap(varin,noblock=1) SWIGTYPE [ANY] {
|
||||||
void *_piData = NULL;
|
void *_piData = NULL;
|
||||||
int index;
|
int index;
|
||||||
getVarAddressFromPosition($argnum, &piAddrVar);
|
getVarAddressFromPosition($argnum, &piAddrVar);
|
||||||
|
|
@ -800,3 +815,4 @@
|
||||||
* ------------------------------------------------------------ */
|
* ------------------------------------------------------------ */
|
||||||
|
|
||||||
%apply int { enum SWIGTYPE };
|
%apply int { enum SWIGTYPE };
|
||||||
|
%apply int { size_t };
|
||||||
|
|
|
||||||
|
|
@ -235,6 +235,9 @@ public:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String *getargs = NewString("");
|
String *getargs = NewString("");
|
||||||
|
if (j >= num_required)
|
||||||
|
Printf(getargs, "if (Rhs > %d) {\n%s\n}", j, tm);
|
||||||
|
else
|
||||||
Printv(getargs, tm, NIL);
|
Printv(getargs, tm, NIL);
|
||||||
Printv(f->code, getargs, "\n", NIL);
|
Printv(f->code, getargs, "\n", NIL);
|
||||||
Delete(getargs);
|
Delete(getargs);
|
||||||
|
|
@ -307,7 +310,7 @@ public:
|
||||||
else {
|
else {
|
||||||
flag = 1;
|
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);
|
Printf(f->def, "CheckLhs(%d, %d);\n",out_required,out_required);
|
||||||
|
|
||||||
/* Insert the order of output parameters*/
|
/* Insert the order of output parameters*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue