API cleanup (Parms)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9633 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ff41049b1c
commit
b00cef436b
12 changed files with 94 additions and 78 deletions
|
|
@ -807,7 +807,7 @@ int Swig_MethodToFunction(Node *n, String *classname, int flags, SwigType *direc
|
|||
SwigType_add_pointer(type);
|
||||
p = NewParm(type, "self");
|
||||
Setattr(p, "self", "1");
|
||||
Setattr(p, "hidden", "1");
|
||||
Setattr(p, "hidden","1");
|
||||
/*
|
||||
Disable the 'this' ownership in 'self' to manage inplace
|
||||
operations like:
|
||||
|
|
@ -1239,7 +1239,7 @@ int Swig_MembersetToFunction(Node *n, String *classname, int flags) {
|
|||
SwigType_add_pointer(t);
|
||||
parms = NewParm(t, "self");
|
||||
Setattr(parms, "self", "1");
|
||||
Setattr(parms, "hidden", "1");
|
||||
Setattr(parms, "hidden","1");
|
||||
Delete(t);
|
||||
|
||||
ty = Swig_wrapped_member_var_type(type, varcref);
|
||||
|
|
@ -1325,7 +1325,7 @@ int Swig_MembergetToFunction(Node *n, String *classname, int flags) {
|
|||
SwigType_add_pointer(t);
|
||||
parms = NewParm(t, "self");
|
||||
Setattr(parms, "self", "1");
|
||||
Setattr(parms, "hidden", "1");
|
||||
Setattr(parms, "hidden","1");
|
||||
Delete(t);
|
||||
|
||||
ty = Swig_wrapped_member_var_type(type, varcref);
|
||||
|
|
|
|||
|
|
@ -68,3 +68,38 @@ int ParmList_is_compactdefargs(ParmList *p) {
|
|||
|
||||
return compactdefargs;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* ParmList_errorstr()
|
||||
*
|
||||
* Generate a prototype string suitable for use in error/warning messages.
|
||||
* This function is aware of hidden parameters.
|
||||
* ---------------------------------------------------------------------- */
|
||||
|
||||
/* Discussion. This function is used to generate error messages, but take
|
||||
into account that there might be a hidden parameter. Although this involves
|
||||
parameter lists, it really isn't a core feature of swigparm.h or parms.c.
|
||||
This is because the "hidden" attribute of parameters is added elsewhere (cwrap.c).
|
||||
|
||||
For now, this function is placed here because it doesn't really seem to fit in
|
||||
with the parms.c interface.
|
||||
|
||||
*/
|
||||
|
||||
String *ParmList_errorstr(ParmList *p) {
|
||||
String *out = NewStringEmpty();
|
||||
while (p) {
|
||||
if (Getattr(p,"hidden")) {
|
||||
p = nextSibling(p);
|
||||
} else {
|
||||
String *pstr = SwigType_str(Getattr(p, "type"), 0);
|
||||
Append(out, pstr);
|
||||
p = nextSibling(p);
|
||||
if (p) {
|
||||
Append(out, ",");
|
||||
}
|
||||
Delete(pstr);
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,20 +81,6 @@ ParmList *CopyParmList(ParmList *p) {
|
|||
return CopyParmListMax(p,-1);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------
|
||||
* int ParmList_numarg()
|
||||
* ------------------------------------------------------------------ */
|
||||
|
||||
int ParmList_numarg(ParmList *p) {
|
||||
int n = 0;
|
||||
while (p) {
|
||||
if (!Getattr(p, "ignore"))
|
||||
n++;
|
||||
p = nextSibling(p);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* int ParmList_numrequired(). Return number of required arguments
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
|
@ -181,17 +167,13 @@ String *ParmList_str_defaultargs(ParmList *p) {
|
|||
String *ParmList_protostr(ParmList *p) {
|
||||
String *out = NewStringEmpty();
|
||||
while (p) {
|
||||
if (Getattr(p, "hidden")) {
|
||||
p = nextSibling(p);
|
||||
} else {
|
||||
String *pstr = SwigType_str(Getattr(p, "type"), 0);
|
||||
Append(out, pstr);
|
||||
p = nextSibling(p);
|
||||
if (p) {
|
||||
Append(out, ",");
|
||||
}
|
||||
Delete(pstr);
|
||||
String *pstr = SwigType_str(Getattr(p, "type"), 0);
|
||||
Append(out, pstr);
|
||||
p = nextSibling(p);
|
||||
if (p) {
|
||||
Append(out, ",");
|
||||
}
|
||||
Delete(pstr);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -297,6 +297,9 @@ extern "C" {
|
|||
|
||||
#include "swigparm.h"
|
||||
|
||||
extern String *ParmList_errorstr(ParmList *);
|
||||
extern int ParmList_is_compactdefargs(ParmList *p);
|
||||
|
||||
/* --- Parse tree support --- */
|
||||
|
||||
#include "swigtree.h"
|
||||
|
|
|
|||
|
|
@ -18,10 +18,12 @@ extern Parm *CopyParm(Parm *p);
|
|||
extern ParmList *CopyParmList(ParmList *);
|
||||
extern ParmList *CopyParmListMax(ParmList *, int count);
|
||||
extern int ParmList_len(ParmList *);
|
||||
extern int ParmList_numarg(ParmList *);
|
||||
extern int ParmList_numrequired(ParmList *);
|
||||
extern int ParmList_has_defaultargs(ParmList *p);
|
||||
|
||||
/* Output functions */
|
||||
extern String *ParmList_str(ParmList *);
|
||||
extern String *ParmList_str_defaultargs(ParmList *);
|
||||
extern String *ParmList_protostr(ParmList *);
|
||||
extern int ParmList_is_compactdefargs(ParmList *p);
|
||||
extern int ParmList_has_defaultargs(ParmList *p);
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue