diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2022-03-12 15:35:57 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2022-03-12 23:04:24 +0000 |
commit | a87e722834312ba48acfdfedbe0a317a1124b239 (patch) | |
tree | 0e894ede135c301408d44abbbe6f2e35b3823694 | |
parent | b6ece11fc1d4120a1f1ed85d1c18639fe04a34b5 (diff) | |
download | swig-a87e722834312ba48acfdfedbe0a317a1124b239.tar.gz |
Use GetFlag instead of Getattr for feature:interface
-rw-r--r-- | Source/Modules/allocate.cxx | 2 | ||||
-rw-r--r-- | Source/Modules/csharp.cxx | 10 | ||||
-rw-r--r-- | Source/Modules/interface.cxx | 12 | ||||
-rw-r--r-- | Source/Modules/java.cxx | 10 |
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) |