diff options
Diffstat (limited to 'TAO/TAO_IDL/fe/fe_interface_header.cpp')
-rw-r--r-- | TAO/TAO_IDL/fe/fe_interface_header.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/TAO/TAO_IDL/fe/fe_interface_header.cpp b/TAO/TAO_IDL/fe/fe_interface_header.cpp index 07fe0398257..c3232879c02 100644 --- a/TAO/TAO_IDL/fe/fe_interface_header.cpp +++ b/TAO/TAO_IDL/fe/fe_interface_header.cpp @@ -737,7 +737,7 @@ FE_OBVHeader::compile_supports (UTL_NameList *supports) { this->pd_supports_concrete = iface; - if (this->check_concrete_supported_inheritance (iface) != 0) + if (!this->check_concrete_supported_inheritance (iface)) { idl_global->err ()->concrete_supported_inheritance_error ( this->name (), @@ -759,6 +759,11 @@ FE_OBVHeader::compile_supports (UTL_NameList *supports) bool FE_OBVHeader::check_concrete_supported_inheritance (AST_Interface *d) { + if (this->pd_n_inherits == 0) + { + return true; + } + AST_ValueType *vt = 0; AST_Interface *concrete = 0; AST_Interface *ancestor = 0; @@ -770,12 +775,12 @@ FE_OBVHeader::check_concrete_supported_inheritance (AST_Interface *d) if (0 == concrete) { - return 0; + return true; } if (d == concrete) { - return 0; + return true; } for (long j = 0; j < d->n_inherits_flat (); ++j) @@ -784,12 +789,12 @@ FE_OBVHeader::check_concrete_supported_inheritance (AST_Interface *d) if (ancestor == concrete) { - return 0; + return true; } } } - return 1; + return false; } //************************************************************************ |