[PATCH] un-inhibit modules when they are combined with a non-inhibited module



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 <ksandstr iki fi>
---
 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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]