Caused problems where applications defined common datatypes etc. in
an #included "common" IDL file; the toplevel module would be first seen in an
include file, inhibited, and would remain inhibited even after a module with
non-inhibited contents was merged in.

This changeset is, where not considered trivial, licensed under GNU LGPL
v2-or-later.

Signed-off-by: Kalle A. Sandstrom <[email protected]>
---
 parser.y |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/parser.y b/parser.y
index 977ffa3..f484825 100644
--- a/parser.y
+++ b/parser.y
@@ -387,6 +387,16 @@ module:                    module_declspec
                        module = IDL_NODE_UP ($2);
                        IDL_MODULE (module).definition_list =
                                IDL_list_concat (IDL_MODULE 
(module).definition_list, $5);
+                       if(!IS_INHIBIT_STATE()
+                               && (module->declspec & IDLF_DECLSPEC_INHIBIT))
+                       {
+                               /* un-inhibit the module, as it now has
+                                * non-inhibited content which shouldn't
+                                * disappear in the optimization stage.
+                                */
+                               module->declspec &= ~IDLF_DECLSPEC_INHIBIT;
+                       }
+
                        module = NULL;
                }
        } else
-- 
1.6.5.2

_______________________________________________
orbit-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/orbit-list

Reply via email to