Remove all checks of ':' on name attribute.
- Remove use of getWrapperMethodName
This commit is contained in:
parent
0343a01a8c
commit
a8db1e4aa6
1 changed files with 38 additions and 26 deletions
|
|
@ -965,18 +965,6 @@ public:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Helper method to remove class prefix on method names.
|
|
||||||
* Ex- Class_method_name -> method_name
|
|
||||||
*/
|
|
||||||
String *getWrapperMethodName(String *className, String *methodName) {
|
|
||||||
String *wrapper_class_name = NewString(className);
|
|
||||||
Append(wrapper_class_name, "_");
|
|
||||||
String *wrapper_method_name = NewString(methodName);
|
|
||||||
Replace(wrapper_method_name, wrapper_class_name, "", DOH_REPLACE_FIRST);
|
|
||||||
Delete(wrapper_class_name);
|
|
||||||
return wrapper_method_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------
|
/* ------------------------------------------------------------
|
||||||
* dispatchFunction()
|
* dispatchFunction()
|
||||||
* ------------------------------------------------------------ */
|
* ------------------------------------------------------------ */
|
||||||
|
|
@ -1011,7 +999,7 @@ public:
|
||||||
wname = NewString("__construct");
|
wname = NewString("__construct");
|
||||||
}
|
}
|
||||||
} else if (class_name) {
|
} else if (class_name) {
|
||||||
wname = getWrapperMethodName(class_name, symname);
|
wname = Getattr(n, "wrapper:method:name");
|
||||||
} else {
|
} else {
|
||||||
wname = Swig_name_wrapper(symname);
|
wname = Swig_name_wrapper(symname);
|
||||||
}
|
}
|
||||||
|
|
@ -1332,6 +1320,7 @@ public:
|
||||||
Wrapper *f;
|
Wrapper *f;
|
||||||
|
|
||||||
String *wname = NewStringEmpty();
|
String *wname = NewStringEmpty();
|
||||||
|
String *overloadwname = NULL;
|
||||||
int overloaded = 0;
|
int overloaded = 0;
|
||||||
String *overname = 0;
|
String *overname = 0;
|
||||||
String *modes = NULL;
|
String *modes = NULL;
|
||||||
|
|
@ -1359,16 +1348,30 @@ public:
|
||||||
|
|
||||||
if (overname) {
|
if (overname) {
|
||||||
// Test for overloading
|
// Test for overloading
|
||||||
wname = Swig_name_wrapper(iname);
|
overloadwname = NewString(Swig_name_wrapper(iname));
|
||||||
Printf(wname, "%s", overname);
|
Printf(overloadwname, "%s", overname);
|
||||||
} else if (constructor) {
|
}
|
||||||
|
|
||||||
|
if (constructor) {
|
||||||
wname = NewString("__construct");
|
wname = NewString("__construct");
|
||||||
} else if (wrapperType == membervar) {
|
} else if (wrapperType == membervar) {
|
||||||
wname = getWrapperMethodName(class_name, iname);
|
wname = Copy(Getattr(n, "membervariableHandler:sym:name"));
|
||||||
|
if (is_setter_method(n)) {
|
||||||
|
Append(wname, "_set");
|
||||||
|
} else if (is_getter_method(n)) {
|
||||||
|
Append(wname, "_get");
|
||||||
|
}
|
||||||
|
} else if (wrapperType == memberfn) {
|
||||||
|
wname = Getattr(n, "memberfunctionHandler:sym:name");
|
||||||
} else if (wrapperType == globalvar) {
|
} else if (wrapperType == globalvar) {
|
||||||
//check for namespaces (global class vars)
|
//check for namespaces (global class vars)
|
||||||
if (Strchr(name,':')) {
|
if (class_name) {
|
||||||
wname = getWrapperMethodName(class_name, iname);
|
wname = Copy(Getattr(n, "variableWrapper:sym:name"));
|
||||||
|
if (is_setter_method(n)) {
|
||||||
|
Append(wname, "_set");
|
||||||
|
} else if (is_getter_method(n)) {
|
||||||
|
Append(wname, "_get");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
wname = iname;
|
wname = iname;
|
||||||
}
|
}
|
||||||
|
|
@ -1392,12 +1395,20 @@ public:
|
||||||
wname = Getattr(n, "staticmemberfunctionHandler:sym:name");
|
wname = Getattr(n, "staticmemberfunctionHandler:sym:name");
|
||||||
} else {
|
} else {
|
||||||
if (class_name) {
|
if (class_name) {
|
||||||
wname = getWrapperMethodName(class_name, iname);
|
if (Cmp(Getattr(n, "storage"), "friend") == 0 && Cmp(Getattr(n, "view"), "globalfunctionHandler") == 0) {
|
||||||
|
wname = iname;
|
||||||
|
} else {
|
||||||
|
wname = Getattr(n, "destructorHandler:sym:name");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
wname = iname;
|
wname = iname;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!wname) {
|
||||||
|
Swig_print_node(n);
|
||||||
|
}
|
||||||
|
|
||||||
if (Cmp(nodeType, "destructor") == 0) {
|
if (Cmp(nodeType, "destructor") == 0) {
|
||||||
// We just generate the Zend List Destructor and let Zend manage the
|
// We just generate the Zend List Destructor and let Zend manage the
|
||||||
// reference counting. There's no explicit destructor, but the user can
|
// reference counting. There's no explicit destructor, but the user can
|
||||||
|
|
@ -1424,9 +1435,9 @@ public:
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (class_name && Cmp(Getattr(n, "storage"), "friend") != 0) {
|
if (class_name && Cmp(Getattr(n, "storage"), "friend") != 0) {
|
||||||
Printv(f->def, "PHP_METHOD(", class_name, ",", wname,") {\n", NIL);
|
Printv(f->def, "PHP_METHOD(", class_name, ",", overloadwname,") {\n", NIL);
|
||||||
} else {
|
} else {
|
||||||
Printv(f->def, "ZEND_NAMED_FUNCTION(", wname,") {\n", NIL);
|
Printv(f->def, "ZEND_NAMED_FUNCTION(", overloadwname,") {\n", NIL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1646,12 +1657,13 @@ public:
|
||||||
} else {
|
} else {
|
||||||
if (class_name && Cmp(Getattr(n, "storage"), "friend") != 0) {
|
if (class_name && Cmp(Getattr(n, "storage"), "friend") != 0) {
|
||||||
String *m_call = NewStringEmpty();
|
String *m_call = NewStringEmpty();
|
||||||
Printf(m_call, "ZEND_MN(%s_%s)", class_name, wname);
|
Printf(m_call, "ZEND_MN(%s_%s)", class_name, overloadwname);
|
||||||
Setattr(n, "wrap:name", m_call);
|
Setattr(n, "wrap:name", m_call);
|
||||||
} else {
|
} else {
|
||||||
Setattr(n, "wrap:name", wname);
|
Setattr(n, "wrap:name", overloadwname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Setattr(n, "wrapper:method:name", wname);
|
||||||
|
|
||||||
String *retType_class = NULL;
|
String *retType_class = NULL;
|
||||||
bool retType_valid = is_class(d);
|
bool retType_valid = is_class(d);
|
||||||
|
|
@ -2629,9 +2641,9 @@ done:
|
||||||
bool isMemberConstant = false;
|
bool isMemberConstant = false;
|
||||||
String *constant_name = NULL;
|
String *constant_name = NULL;
|
||||||
|
|
||||||
if (Strchr(name,':') && class_name) {
|
if (class_name) {
|
||||||
isMemberConstant = true;
|
isMemberConstant = true;
|
||||||
constant_name = getWrapperMethodName(class_name, iname);
|
constant_name = Getattr(n ,"memberconstantHandler:sym:name");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!addSymbol(iname, n))
|
if (!addSymbol(iname, n))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue