diff options
Diffstat (limited to 'cpp/src/slice2objc/ObjCUtil.cpp')
-rw-r--r-- | cpp/src/slice2objc/ObjCUtil.cpp | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/cpp/src/slice2objc/ObjCUtil.cpp b/cpp/src/slice2objc/ObjCUtil.cpp index 1087a9a5bfc..ad2787308bc 100644 --- a/cpp/src/slice2objc/ObjCUtil.cpp +++ b/cpp/src/slice2objc/ObjCUtil.cpp @@ -1043,16 +1043,17 @@ Slice::ObjCGenerator::writeOptParamMarshalUnmarshalCode(Output &out, const TypeP } void -Slice::ObjCGenerator::validateMetaData(const UnitPtr& u) +Slice::ObjCGenerator::validateMetaData(const UnitPtr& u, int warningLevel) { - MetaDataVisitor visitor; + MetaDataVisitor visitor(warningLevel); u->visit(&visitor, true); } const string Slice::ObjCGenerator::MetaDataVisitor::_objcPrefix = "objc:"; const string Slice::ObjCGenerator::MetaDataVisitor::_msg = "ignoring invalid metadata"; -Slice::ObjCGenerator::MetaDataVisitor::MetaDataVisitor() +Slice::ObjCGenerator::MetaDataVisitor::MetaDataVisitor(int warningLevel) : + ParserVisitor(warningLevel) { } @@ -1085,10 +1086,13 @@ Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) headerDir++; if(headerDir > 1) { - ostringstream ostr; - ostr << "ignoring invalid global metadata `" << s - << "': directive can appear only once per file"; - emitWarning(file, -1, ostr.str()); + if(warningLevel() > 0) + { + ostringstream ostr; + ostr << "ignoring invalid global metadata `" << s + << "': directive can appear only once per file"; + emitWarning(file, -1, ostr.str()); + } globalMetaData.remove(s); } continue; @@ -1098,17 +1102,23 @@ Slice::ObjCGenerator::MetaDataVisitor::visitUnitStart(const UnitPtr& p) dllExport++; if(dllExport > 1) { - ostringstream ostr; - ostr << "ignoring invalid global metadata `" << s - << "': directive can appear only once per file"; - emitWarning(file, -1, ostr.str()); + if(warningLevel() > 0) + { + ostringstream ostr; + ostr << "ignoring invalid global metadata `" << s + << "': directive can appear only once per file"; + emitWarning(file, -1, ostr.str()); + } globalMetaData.remove(s); } continue; } - ostringstream ostr; - ostr << "ignoring invalid global metadata `" << s << "'"; - emitWarning(file, -1, ostr.str()); + if(warningLevel() > 0) + { + ostringstream ostr; + ostr << "ignoring invalid global metadata `" << s << "'"; + emitWarning(file, -1, ostr.str()); + } globalMetaData.remove(s); } } |