[Libreoffice-commits] core.git: codemaker/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Sat Apr 18 19:46:49 UTC 2020
codemaker/source/codemaker/exceptiontree.cxx | 37 ++--
codemaker/source/cppumaker/cpputype.cxx | 204 +++++++++++++--------------
codemaker/source/javamaker/javatype.cxx | 94 ++++++------
3 files changed, 170 insertions(+), 165 deletions(-)
New commits:
commit ed0097845a07b6129f4e56cd28b90ce9b9368cf5
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Sat Apr 18 11:37:53 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Apr 18 21:46:13 2020 +0200
loplugin:flatten in codemaker
Change-Id: I973ecef5df990511a41e422b73ed2314434f2871
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92479
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/codemaker/source/codemaker/exceptiontree.cxx b/codemaker/source/codemaker/exceptiontree.cxx
index b6c2aeee6f87..148f017b6877 100644
--- a/codemaker/source/codemaker/exceptiontree.cxx
+++ b/codemaker/source/codemaker/exceptiontree.cxx
@@ -63,27 +63,28 @@ void ExceptionTree::add(
getDirectBase());
assert(!n.isEmpty());
}
- if (!bRuntimeException) {
- ExceptionTreeNode * node = &m_root;
- for (std::vector< OString >::reverse_iterator i(list.rbegin());
- !node->present; ++i)
+ if (bRuntimeException)
+ return;
+
+ ExceptionTreeNode * node = &m_root;
+ for (std::vector< OString >::reverse_iterator i(list.rbegin());
+ !node->present; ++i)
+ {
+ if (i == list.rend()) {
+ node->setPresent();
+ break;
+ }
+ for (ExceptionTreeNode::Children::iterator j(
+ node->children.begin());;
+ ++j)
{
- if (i == list.rend()) {
- node->setPresent();
+ if (j == node->children.end()) {
+ node = node->add(*i);
break;
}
- for (ExceptionTreeNode::Children::iterator j(
- node->children.begin());;
- ++j)
- {
- if (j == node->children.end()) {
- node = node->add(*i);
- break;
- }
- if ((*j)->name == *i) {
- node = j->get();
- break;
- }
+ if ((*j)->name == *i) {
+ node = j->get();
+ break;
}
}
}
diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx
index dcec84ccdc3f..12c951205c54 100644
--- a/codemaker/source/cppumaker/cpputype.cxx
+++ b/codemaker/source/cppumaker/cpputype.cxx
@@ -1441,115 +1441,117 @@ void InterfaceType::addComprehensiveGetCppuTypeIncludes(
void InterfaceType::dumpCppuAttributes(FileStream & out, sal_uInt32 & index)
{
- if (!entity_->getDirectAttributes().empty()) {
- out << "\n" << indent()
- << "typelib_InterfaceAttributeTypeDescription * pAttribute = 0;\n";
- std::vector< unoidl::InterfaceTypeEntity::Attribute >::size_type n = 0;
- for (const unoidl::InterfaceTypeEntity::Attribute& attr : entity_->getDirectAttributes()) {
- OUString type(resolveAllTypedefs(attr.type));
- out << indent() << "{\n";
- inc();
- out << indent() << "::rtl::OUString sAttributeType" << n << "( \""
- << type << "\" );\n" << indent()
- << "::rtl::OUString sAttributeName" << n << "( \"" << name_
- << "::" << attr.name << "\" );\n";
- sal_Int32 getExcn = dumpExceptionTypeNames(
- out, "get", attr.getExceptions, false);
- sal_Int32 setExcn = dumpExceptionTypeNames(
- out, "set", attr.setExceptions, false);
- out << indent()
- << ("typelib_typedescription_newExtendedInterfaceAttribute("
- " &pAttribute,\n");
- inc();
- out << indent() << index++ << ", sAttributeName" << n
- << ".pData,\n" << indent() << "(typelib_TypeClass)"
- << getTypeClass(type) << ", sAttributeType" << n << ".pData,\n"
- << indent() << "sal_" << (attr.readOnly ? "True" : "False")
- << ", " << getExcn << ", "
- << (getExcn == 0 ? "0" : "the_getExceptions") << ", " << setExcn
- << ", " << (setExcn == 0 ? "0" : "the_setExceptions")
- << " );\n";
- dec();
- out << indent()
- << ("typelib_typedescription_register("
- " (typelib_TypeDescription**)&pAttribute );\n");
- dec();
- out << indent() << "}\n";
- ++n;
- }
+ if (entity_->getDirectAttributes().empty())
+ return;
+
+ out << "\n" << indent()
+ << "typelib_InterfaceAttributeTypeDescription * pAttribute = 0;\n";
+ std::vector< unoidl::InterfaceTypeEntity::Attribute >::size_type n = 0;
+ for (const unoidl::InterfaceTypeEntity::Attribute& attr : entity_->getDirectAttributes()) {
+ OUString type(resolveAllTypedefs(attr.type));
+ out << indent() << "{\n";
+ inc();
+ out << indent() << "::rtl::OUString sAttributeType" << n << "( \""
+ << type << "\" );\n" << indent()
+ << "::rtl::OUString sAttributeName" << n << "( \"" << name_
+ << "::" << attr.name << "\" );\n";
+ sal_Int32 getExcn = dumpExceptionTypeNames(
+ out, "get", attr.getExceptions, false);
+ sal_Int32 setExcn = dumpExceptionTypeNames(
+ out, "set", attr.setExceptions, false);
+ out << indent()
+ << ("typelib_typedescription_newExtendedInterfaceAttribute("
+ " &pAttribute,\n");
+ inc();
+ out << indent() << index++ << ", sAttributeName" << n
+ << ".pData,\n" << indent() << "(typelib_TypeClass)"
+ << getTypeClass(type) << ", sAttributeType" << n << ".pData,\n"
+ << indent() << "sal_" << (attr.readOnly ? "True" : "False")
+ << ", " << getExcn << ", "
+ << (getExcn == 0 ? "0" : "the_getExceptions") << ", " << setExcn
+ << ", " << (setExcn == 0 ? "0" : "the_setExceptions")
+ << " );\n";
+ dec();
out << indent()
- << ("typelib_typedescription_release("
- " (typelib_TypeDescription*)pAttribute );\n");
+ << ("typelib_typedescription_register("
+ " (typelib_TypeDescription**)&pAttribute );\n");
+ dec();
+ out << indent() << "}\n";
+ ++n;
}
+ out << indent()
+ << ("typelib_typedescription_release("
+ " (typelib_TypeDescription*)pAttribute );\n");
}
void InterfaceType::dumpCppuMethods(FileStream & out, sal_uInt32 & index)
{
- if (!entity_->getDirectMethods().empty()) {
- out << "\n" << indent()
- << "typelib_InterfaceMethodTypeDescription * pMethod = 0;\n";
- std::vector< unoidl::InterfaceTypeEntity::Method >::size_type n = 0;
- for (const unoidl::InterfaceTypeEntity::Method& method : entity_->getDirectMethods()) {
- OUString returnType(resolveAllTypedefs(method.returnType));
- out << indent() << "{\n";
- inc();
- if (!method.parameters.empty()) {
- out << indent() << "typelib_Parameter_Init aParameters["
- << method.parameters.size() << "];\n";
- }
- std::vector< unoidl::InterfaceTypeEntity::Method::Parameter >::
- size_type m = 0;
- for (const unoidl::InterfaceTypeEntity::Method::Parameter& param : method.parameters) {
- OUString type(resolveAllTypedefs(param.type));
- out << indent() << "::rtl::OUString sParamName" << m << "( \""
- << param.name << "\" );\n" << indent()
- << "::rtl::OUString sParamType" << m << "( \"" << type
- << "\" );\n" << indent() << "aParameters[" << m
- << "].pParamName = sParamName" << m << ".pData;\n"
- << indent() << "aParameters[" << m
- << "].eTypeClass = (typelib_TypeClass)"
- << getTypeClass(type) << ";\n" << indent() << "aParameters["
- << m << "].pTypeName = sParamType" << m << ".pData;\n"
- << indent() << "aParameters[" << m << "].bIn = "
- << ((param.direction
- == unoidl::InterfaceTypeEntity::Method::Parameter::DIRECTION_OUT)
- ? "sal_False" : "sal_True")
- << ";\n" << indent() << "aParameters[" << m << "].bOut = "
- << ((param.direction
- == unoidl::InterfaceTypeEntity::Method::Parameter::DIRECTION_IN)
- ? "sal_False" : "sal_True")
- << ";\n";
- ++m;
- }
- sal_Int32 excn = dumpExceptionTypeNames(
- out, "", method.exceptions,
- method.name != "acquire" && method.name != "release");
- out << indent() << "::rtl::OUString sReturnType" << n << "( \""
- << returnType << "\" );\n" << indent()
- << "::rtl::OUString sMethodName" << n << "( \"" << name_ << "::"
- << method.name << "\" );\n" << indent()
- << "typelib_typedescription_newInterfaceMethod( &pMethod,\n";
- inc();
- out << indent() << index++ << ", sal_False,\n" << indent()
- << "sMethodName" << n << ".pData,\n" << indent()
- << "(typelib_TypeClass)" << getTypeClass(returnType)
- << ", sReturnType" << n << ".pData,\n" << indent()
- << method.parameters.size() << ", "
- << (method.parameters.empty() ? "0" : "aParameters") << ",\n"
- << indent() << excn << ", "
- << (excn == 0 ? "0" : "the_Exceptions") << " );\n";
- dec();
- out << indent()
- << ("typelib_typedescription_register("
- " (typelib_TypeDescription**)&pMethod );\n");
- dec();
- out << indent() << "}\n";
- ++n;
- }
+ if (entity_->getDirectMethods().empty())
+ return;
+
+ out << "\n" << indent()
+ << "typelib_InterfaceMethodTypeDescription * pMethod = 0;\n";
+ std::vector< unoidl::InterfaceTypeEntity::Method >::size_type n = 0;
+ for (const unoidl::InterfaceTypeEntity::Method& method : entity_->getDirectMethods()) {
+ OUString returnType(resolveAllTypedefs(method.returnType));
+ out << indent() << "{\n";
+ inc();
+ if (!method.parameters.empty()) {
+ out << indent() << "typelib_Parameter_Init aParameters["
+ << method.parameters.size() << "];\n";
+ }
+ std::vector< unoidl::InterfaceTypeEntity::Method::Parameter >::
+ size_type m = 0;
+ for (const unoidl::InterfaceTypeEntity::Method::Parameter& param : method.parameters) {
+ OUString type(resolveAllTypedefs(param.type));
+ out << indent() << "::rtl::OUString sParamName" << m << "( \""
+ << param.name << "\" );\n" << indent()
+ << "::rtl::OUString sParamType" << m << "( \"" << type
+ << "\" );\n" << indent() << "aParameters[" << m
+ << "].pParamName = sParamName" << m << ".pData;\n"
+ << indent() << "aParameters[" << m
+ << "].eTypeClass = (typelib_TypeClass)"
+ << getTypeClass(type) << ";\n" << indent() << "aParameters["
+ << m << "].pTypeName = sParamType" << m << ".pData;\n"
+ << indent() << "aParameters[" << m << "].bIn = "
+ << ((param.direction
+ == unoidl::InterfaceTypeEntity::Method::Parameter::DIRECTION_OUT)
+ ? "sal_False" : "sal_True")
+ << ";\n" << indent() << "aParameters[" << m << "].bOut = "
+ << ((param.direction
+ == unoidl::InterfaceTypeEntity::Method::Parameter::DIRECTION_IN)
+ ? "sal_False" : "sal_True")
+ << ";\n";
+ ++m;
+ }
+ sal_Int32 excn = dumpExceptionTypeNames(
+ out, "", method.exceptions,
+ method.name != "acquire" && method.name != "release");
+ out << indent() << "::rtl::OUString sReturnType" << n << "( \""
+ << returnType << "\" );\n" << indent()
+ << "::rtl::OUString sMethodName" << n << "( \"" << name_ << "::"
+ << method.name << "\" );\n" << indent()
+ << "typelib_typedescription_newInterfaceMethod( &pMethod,\n";
+ inc();
+ out << indent() << index++ << ", sal_False,\n" << indent()
+ << "sMethodName" << n << ".pData,\n" << indent()
+ << "(typelib_TypeClass)" << getTypeClass(returnType)
+ << ", sReturnType" << n << ".pData,\n" << indent()
+ << method.parameters.size() << ", "
+ << (method.parameters.empty() ? "0" : "aParameters") << ",\n"
+ << indent() << excn << ", "
+ << (excn == 0 ? "0" : "the_Exceptions") << " );\n";
+ dec();
out << indent()
- << ("typelib_typedescription_release("
- " (typelib_TypeDescription*)pMethod );\n");
+ << ("typelib_typedescription_register("
+ " (typelib_TypeDescription**)&pMethod );\n");
+ dec();
+ out << indent() << "}\n";
+ ++n;
}
+ out << indent()
+ << ("typelib_typedescription_release("
+ " (typelib_TypeDescription*)pMethod );\n");
}
void InterfaceType::dumpAttributesCppuDecl(
diff --git a/codemaker/source/javamaker/javatype.cxx b/codemaker/source/javamaker/javatype.cxx
index 16c2ef73e089..f800d7365852 100644
--- a/codemaker/source/javamaker/javatype.cxx
+++ b/codemaker/source/javamaker/javatype.cxx
@@ -64,22 +64,23 @@ void appendUnoName(
buffer->append("[]");
}
buffer->append(nucleus);
- if (!arguments.empty()) {
- buffer->append('<');
- for (std::vector< OUString >::const_iterator i(arguments.begin());
- i != arguments.end(); ++i)
- {
- if (i != arguments.begin()) {
- buffer->append(',');
- }
- OUString n;
- sal_Int32 k;
- std::vector< OUString > args;
- manager->decompose(*i, false, &n, &k, &args, nullptr);
- appendUnoName(manager, n, k, args, buffer);
+ if (arguments.empty())
+ return;
+
+ buffer->append('<');
+ for (std::vector< OUString >::const_iterator i(arguments.begin());
+ i != arguments.end(); ++i)
+ {
+ if (i != arguments.begin()) {
+ buffer->append(',');
}
- buffer->append('>');
+ OUString n;
+ sal_Int32 k;
+ std::vector< OUString > args;
+ manager->decompose(*i, false, &n, &k, &args, nullptr);
+ appendUnoName(manager, n, k, args, buffer);
}
+ buffer->append('>');
}
// Translate the name of a UNOIDL entity (enum type, plain struct type,
@@ -643,39 +644,40 @@ void addTypeInfo(
throw CannotDumpException(
"UNOTYPEINFO array too big for Java class file format");
}
- if (typeInfos != 0) {
- classFile->addField(
- static_cast< ClassFile::AccessFlags >(
- ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC
- | ClassFile::ACC_FINAL),
- "UNOTYPEINFO", "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;",
- 0, "");
- std::unique_ptr< ClassFile::Code > code(classFile->newCode());
- code->loadIntegerConstant(static_cast< sal_Int32 >(typeInfos));
- code->instrAnewarray("com/sun/star/lib/uno/typeinfo/TypeInfo");
- sal_Int32 index = 0;
- sal_uInt16 stack = 0;
- for (const TypeInfo& ti : typeInfo)
- {
- code->instrDup();
- code->loadIntegerConstant(index++);
- stack = std::max(stack, ti.generateCode(*code, dependencies));
- code->instrAastore();
- }
- code->instrPutstatic(
- className, "UNOTYPEINFO",
- "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;");
- code->instrReturn();
- if (stack > SAL_MAX_UINT16 - 4) {
- throw CannotDumpException(
- "Stack too big for Java class file format");
- }
- code->setMaxStackAndLocals(static_cast< sal_uInt16 >(stack + 4), 0);
- classFile->addMethod(
- static_cast< ClassFile::AccessFlags >(
- ClassFile::ACC_PRIVATE | ClassFile::ACC_STATIC),
- "<clinit>", "()V", code.get(), std::vector< OString >(), "");
+ if (typeInfos == 0)
+ return;
+
+ classFile->addField(
+ static_cast< ClassFile::AccessFlags >(
+ ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC
+ | ClassFile::ACC_FINAL),
+ "UNOTYPEINFO", "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;",
+ 0, "");
+ std::unique_ptr< ClassFile::Code > code(classFile->newCode());
+ code->loadIntegerConstant(static_cast< sal_Int32 >(typeInfos));
+ code->instrAnewarray("com/sun/star/lib/uno/typeinfo/TypeInfo");
+ sal_Int32 index = 0;
+ sal_uInt16 stack = 0;
+ for (const TypeInfo& ti : typeInfo)
+ {
+ code->instrDup();
+ code->loadIntegerConstant(index++);
+ stack = std::max(stack, ti.generateCode(*code, dependencies));
+ code->instrAastore();
+ }
+ code->instrPutstatic(
+ className, "UNOTYPEINFO",
+ "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;");
+ code->instrReturn();
+ if (stack > SAL_MAX_UINT16 - 4) {
+ throw CannotDumpException(
+ "Stack too big for Java class file format");
}
+ code->setMaxStackAndLocals(static_cast< sal_uInt16 >(stack + 4), 0);
+ classFile->addMethod(
+ static_cast< ClassFile::AccessFlags >(
+ ClassFile::ACC_PRIVATE | ClassFile::ACC_STATIC),
+ "<clinit>", "()V", code.get(), std::vector< OString >(), "");
}
void handleEnumType(
More information about the Libreoffice-commits
mailing list