From a03ed7ad2062c7fd143aef1991acdb3d4a7ef147 Mon Sep 17 00:00:00 2001 From: dbv Date: Fri, 16 Jan 2015 16:27:06 +0300 Subject: [PATCH] 0025183: WOK - add "Standard_Override" specifier to redefined methods WOK now adds "Standard_OVERRIDE" specifier to redefined methods --- src/CPPExt/CPPExt.cxx | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/src/CPPExt/CPPExt.cxx b/src/CPPExt/CPPExt.cxx index 64d6e41..5b46451 100755 --- a/src/CPPExt/CPPExt.cxx +++ b/src/CPPExt/CPPExt.cxx @@ -4,6 +4,8 @@ // 10/1995 // #include +#include +#include #include #include #include @@ -438,29 +440,45 @@ void CPP_BuildMethod(const Handle(MS_MetaSchema)& aMeta, api->AddVariable(VIsCreateMethod,"no"); - if (!im->IsDeferred() || !forDeclaration) { - if (!im->IsStatic() && forDeclaration) { - api->AddVariable(VVirtual,"virtual "); + TCollection_AsciiString aVMetSpec = ""; + Standard_Boolean isDerived = TCollection_AsciiString (api->GetVariable (VInherits).GetValue()).Length(); + + if (!im->IsDeferred() || !forDeclaration) + { + if (!im->IsStatic() && forDeclaration) + { + api->AddVariable(VVirtual,"virtual "); } - if (im->IsConst()) { - api->AddVariable(VMetSpec," const"); + if (im->IsConst()) + { + aVMetSpec += " const"; } - else { - api->AddVariable(VMetSpec,""); + + if (im->IsRedefined() && isDerived) + { + aVMetSpec += " Standard_OVERRIDE"; } } - else if (forDeclaration) { + else if (forDeclaration) + { api->AddVariable(VVirtual,"virtual "); - if (im->IsConst()) { - api->AddVariable(VMetSpec," const = 0"); + if (im->IsConst()) + { + aVMetSpec += " const"; } - else { - api->AddVariable(VMetSpec," = 0"); + + if (im->IsRedefined() && isDerived) + { + aVMetSpec += " Standard_OVERRIDE"; } + + aVMetSpec += " = 0"; } + api->AddVariable(VMetSpec, aVMetSpec.ToCString()); + api->Apply(VMethod,MetTemplate->ToCString()); if (InlineMethod) { -- 2.39.5