summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2022-03-12 15:35:57 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2022-03-12 23:04:24 +0000
commita87e722834312ba48acfdfedbe0a317a1124b239 (patch)
tree0e894ede135c301408d44abbbe6f2e35b3823694
parentb6ece11fc1d4120a1f1ed85d1c18639fe04a34b5 (diff)
downloadswig-a87e722834312ba48acfdfedbe0a317a1124b239.tar.gz
Use GetFlag instead of Getattr for feature:interface
-rw-r--r--Source/Modules/allocate.cxx2
-rw-r--r--Source/Modules/csharp.cxx10
-rw-r--r--Source/Modules/interface.cxx12
-rw-r--r--Source/Modules/java.cxx10
4 files changed, 17 insertions, 17 deletions
diff --git a/Source/Modules/allocate.cxx b/Source/Modules/allocate.cxx
index 7d567395c..297a4e69d 100644
--- a/Source/Modules/allocate.cxx
+++ b/Source/Modules/allocate.cxx
@@ -197,7 +197,7 @@ class Allocate:public Dispatcher {
// Found a polymorphic method.
// Mark the polymorphic method, in case the virtual keyword was not used.
Setattr(n, "storage", "virtual");
- if (!Getattr(b, "feature:interface")) { // interface implementation neither hides nor overrides
+ if (!GetFlag(b, "feature:interface")) { // interface implementation neither hides nor overrides
if (both_have_public_access || both_have_protected_access) {
if (!is_non_public_base(inclass, b))
Setattr(n, "override", base); // Note C# definition of override, ie access must be the same
diff --git a/Source/Modules/csharp.cxx b/Source/Modules/csharp.cxx
index 80ca8a0d0..da09b3b82 100644
--- a/Source/Modules/csharp.cxx
+++ b/Source/Modules/csharp.cxx
@@ -1806,7 +1806,7 @@ public:
if (baselist) {
Iterator base = First(baselist);
while (base.item) {
- if (!(GetFlag(base.item, "feature:ignore") || Getattr(base.item, "feature:interface"))) {
+ if (!(GetFlag(base.item, "feature:ignore") || GetFlag(base.item, "feature:interface"))) {
SwigType *baseclassname = Getattr(base.item, "name");
if (!c_baseclassname) {
String *name = getProxyName(baseclassname);
@@ -2045,7 +2045,7 @@ public:
if (List *baselist = Getattr(n, "bases")) {
String *bases = 0;
for (Iterator base = First(baselist); base.item; base = Next(base)) {
- if (GetFlag(base.item, "feature:ignore") || !Getattr(base.item, "feature:interface"))
+ if (GetFlag(base.item, "feature:ignore") || !GetFlag(base.item, "feature:interface"))
continue; // TODO: warn about skipped non-interface bases
String *base_iname = Getattr(base.item, "interface:name");
if (!bases)
@@ -2096,7 +2096,7 @@ public:
if (proxy_flag) {
proxy_class_name = NewString(Getattr(n, "sym:name"));
- String *interface_name = Getattr(n, "feature:interface") ? Getattr(n, "interface:name") : 0;
+ String *interface_name = GetFlag(n, "feature:interface") ? Getattr(n, "interface:name") : 0;
if (Node *outer = Getattr(n, "nested:outer")) {
String *outerClassesPrefix = Copy(Getattr(outer, "sym:name"));
for (outer = Getattr(outer, "nested:outer"); outer != 0; outer = Getattr(outer, "nested:outer")) {
@@ -2152,7 +2152,7 @@ public:
destructor_call = NewString("");
proxy_class_constants_code = NewString("");
- if (Getattr(n, "feature:interface")) {
+ if (GetFlag(n, "feature:interface")) {
interface_class_code = NewString("");
String *output_directory = outputDirectory(nspace);
f_interface = getOutputFile(output_directory, interface_name);
@@ -2323,7 +2323,7 @@ public:
String *pre_code = NewString("");
String *post_code = NewString("");
String *terminator_code = NewString("");
- bool is_interface = Getattr(parentNode(n), "feature:interface") != 0
+ bool is_interface = GetFlag(parentNode(n), "feature:interface")
&& !static_flag && Getattr(n, "interface:owner") == 0;
if (!proxy_flag)
diff --git a/Source/Modules/interface.cxx b/Source/Modules/interface.cxx
index 6d9738592..76734dca1 100644
--- a/Source/Modules/interface.cxx
+++ b/Source/Modules/interface.cxx
@@ -65,7 +65,7 @@ static List *collect_interface_methods(Node *n) {
* ----------------------------------------------------------------------------- */
static void collect_interface_bases(Hash *bases, Node *n) {
- if (Getattr(n, "feature:interface")) {
+ if (GetFlag(n, "feature:interface")) {
String *name = Getattr(n, "interface:name");
if (!Getattr(bases, name))
Setattr(bases, name, n);
@@ -74,7 +74,7 @@ static void collect_interface_bases(Hash *bases, Node *n) {
if (List *baselist = Getattr(n, "bases")) {
for (Iterator base = First(baselist); base.item; base = Next(base)) {
if (!GetFlag(base.item, "feature:ignore")) {
- if (Getattr(base.item, "feature:interface"))
+ if (GetFlag(base.item, "feature:interface"))
collect_interface_bases(bases, base.item);
}
}
@@ -92,12 +92,12 @@ static void collect_interface_bases(Hash *bases, Node *n) {
* ----------------------------------------------------------------------------- */
static void collect_interface_base_classes(Node *n) {
- if (Getattr(n, "feature:interface")) {
+ if (GetFlag(n, "feature:interface")) {
// check all bases are also interfaces
if (List *baselist = Getattr(n, "bases")) {
for (Iterator base = First(baselist); base.item; base = Next(base)) {
if (!GetFlag(base.item, "feature:ignore")) {
- if (!Getattr(base.item, "feature:interface")) {
+ if (!GetFlag(base.item, "feature:interface")) {
Swig_error(Getfile(n), Getline(n), "Base class '%s' of '%s' is not similarly marked as an interface.\n", SwigType_namestr(Getattr(base.item, "name")), SwigType_namestr(Getattr(n, "name")));
Exit(EXIT_FAILURE);
}
@@ -119,7 +119,7 @@ static void collect_interface_base_classes(Node *n) {
* ----------------------------------------------------------------------------- */
static void process_interface_name(Node *n) {
- if (Getattr(n, "feature:interface")) {
+ if (GetFlag(n, "feature:interface")) {
String *interface_name = Getattr(n, "feature:interface:name");
if (!Len(interface_name)) {
Swig_error(Getfile(n), Getline(n), "The interface feature for '%s' is missing the name attribute.\n", SwigType_namestr(Getattr(n, "name")));
@@ -148,7 +148,7 @@ void Swig_interface_propagate_methods(Node *n) {
process_interface_name(n);
collect_interface_base_classes(n);
List *methods = collect_interface_methods(n);
- bool is_interface = Getattr(n, "feature:interface") != 0;
+ bool is_interface = GetFlag(n, "feature:interface");
for (Iterator mi = First(methods); mi.item; mi = Next(mi)) {
if (!is_interface && GetFlag(mi.item, "abstract"))
continue;
diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx
index 87dd31b22..20628e512 100644
--- a/Source/Modules/java.cxx
+++ b/Source/Modules/java.cxx
@@ -1959,7 +1959,7 @@ public:
if (baselist) {
Iterator base = First(baselist);
while (base.item) {
- if (!(GetFlag(base.item, "feature:ignore") || Getattr(base.item, "feature:interface"))) {
+ if (!(GetFlag(base.item, "feature:ignore") || GetFlag(base.item, "feature:interface"))) {
SwigType *baseclassname = Getattr(base.item, "name");
if (!c_baseclassname) {
String *name = getProxyName(baseclassname);
@@ -2140,7 +2140,7 @@ public:
if (List *baselist = Getattr(n, "bases")) {
String *bases = 0;
for (Iterator base = First(baselist); base.item; base = Next(base)) {
- if (GetFlag(base.item, "feature:ignore") || !Getattr(base.item, "feature:interface"))
+ if (GetFlag(base.item, "feature:ignore") || !GetFlag(base.item, "feature:interface"))
continue; // TODO: warn about skipped non-interface bases
String *base_iname = Getattr(base.item, "interface:name");
if (!bases)
@@ -2236,7 +2236,7 @@ public:
}
}
- String *interface_name = Getattr(n, "feature:interface") ? Getattr(n, "interface:name") : 0;
+ String *interface_name = GetFlag(n, "feature:interface") ? Getattr(n, "interface:name") : 0;
if (outerClassesPrefix) {
String *fnspace = nspace ? NewStringf("%s.%s", nspace, outerClassesPrefix) : outerClassesPrefix;
if (!addSymbol(proxy_class_name, n, fnspace))
@@ -2287,7 +2287,7 @@ public:
destructor_throws_clause = NewString("");
proxy_class_constants_code = NewString("");
- if (Getattr(n, "feature:interface")) {
+ if (GetFlag(n, "feature:interface")) {
interface_class_code = NewString("");
String *output_directory = outputDirectory(nspace);
String *filen = NewStringf("%s%s.java", output_directory, interface_name);
@@ -2462,7 +2462,7 @@ public:
bool setter_flag = false;
String *pre_code = NewString("");
String *post_code = NewString("");
- bool is_interface = Getattr(parentNode(n), "feature:interface") != 0
+ bool is_interface = GetFlag(parentNode(n), "feature:interface")
&& !static_flag && Getattr(n, "interface:owner") == 0;
if (!proxy_flag)