diff options
Diffstat (limited to 'codemaker/source/javamaker/javatype.cxx')
-rw-r--r-- | codemaker/source/javamaker/javatype.cxx | 494 |
1 files changed, 249 insertions, 245 deletions
diff --git a/codemaker/source/javamaker/javatype.cxx b/codemaker/source/javamaker/javatype.cxx index 25406d07234c..6ac84ff75e02 100644 --- a/codemaker/source/javamaker/javatype.cxx +++ b/codemaker/source/javamaker/javatype.cxx @@ -44,6 +44,7 @@ #include <rtl/ustring.hxx> #include <sal/types.h> #include <unoidl/unoidl.hxx> +#include <o3tl/string_view.hxx> #include "classfile.hxx" #include "javaoptions.hxx" @@ -54,7 +55,7 @@ using codemaker::javamaker::ClassFile; namespace { void appendUnoName( - rtl::Reference< TypeManager > const & manager, OUString const & nucleus, + rtl::Reference< TypeManager > const & manager, std::u16string_view nucleus, sal_Int32 rank, std::vector< OUString > const & arguments, OUStringBuffer * buffer) { @@ -88,7 +89,7 @@ void appendUnoName( // polymorphic struct type template, or interface type, decomposed into nucleus, // sequence rank, and template arguments) into a core UNO type name: OUString createUnoName( - rtl::Reference< TypeManager > const & manager, OUString const & nucleus, + rtl::Reference< TypeManager > const & manager, std::u16string_view nucleus, sal_Int32 rank, std::vector< OUString > const & arguments) { OUStringBuffer buf(256); @@ -108,14 +109,18 @@ bool isSpecialType(SpecialType special) { } OString translateUnoidlEntityNameToJavaFullyQualifiedName( - OUString const & name, std::string_view prefix) + std::u16string_view name, std::string_view prefix) { - assert(!name.startsWith("[]")); - assert(name.indexOf('<') == -1); - sal_Int32 i = name.lastIndexOf('.') + 1; - return codemaker::convertString(name.copy(0, i)).replace('.', '/') + assert(!o3tl::starts_with(name, u"[]")); + assert(name.find('<') == std::string_view::npos); + size_t i = name.rfind('.'); + if (i == std::string_view::npos) + i = 0; + else + ++i; + return codemaker::convertString(OUString(name.substr(0, i))).replace('.', '/') + codemaker::java::translateUnoToJavaIdentifier( - codemaker::convertString(name.copy(i)), prefix); + codemaker::convertString(OUString(name.substr(i))), prefix); } struct PolymorphicUnoType { @@ -315,7 +320,7 @@ SpecialType getFieldDescriptor( class MethodDescriptor { public: MethodDescriptor( - rtl::Reference< TypeManager > const & manager, + rtl::Reference< TypeManager > manager, std::set<OUString> * dependencies, std::u16string_view returnType, SpecialType * specialReturnType, PolymorphicUnoType * polymorphicUnoType); @@ -328,7 +333,7 @@ public: OString getDescriptor() const; - OString getSignature() const { return m_needsSignature ? m_signatureStart.toString() + m_signatureEnd : OString();} + OString getSignature() const { return m_needsSignature ? m_signatureStart + m_signatureEnd : OString();} private: rtl::Reference< TypeManager > m_manager; @@ -341,10 +346,10 @@ private: }; MethodDescriptor::MethodDescriptor( - rtl::Reference< TypeManager > const & manager, std::set<OUString> * dependencies, + rtl::Reference< TypeManager > manager, std::set<OUString> * dependencies, std::u16string_view returnType, SpecialType * specialReturnType, PolymorphicUnoType * polymorphicUnoType): - m_manager(manager), m_dependencies(dependencies), m_needsSignature(false) + m_manager(std::move(manager)), m_dependencies(dependencies), m_needsSignature(false) { assert(dependencies != nullptr); m_descriptorStart.append('('); @@ -395,20 +400,20 @@ public: // KIND_MEMBER: TypeInfo( - OString const & name, SpecialType specialType, sal_Int32 index, + OString name, SpecialType specialType, sal_Int32 index, PolymorphicUnoType const & polymorphicUnoType, sal_Int32 typeParameterIndex); // KIND_ATTRIBUTE/METHOD: TypeInfo( - Kind kind, OString const & name, SpecialType specialType, Flags flags, - sal_Int32 index, PolymorphicUnoType const & polymorphicUnoType); + Kind kind, OString name, SpecialType specialType, Flags flags, + sal_Int32 index, PolymorphicUnoType polymorphicUnoType); // KIND_PARAMETER: TypeInfo( - OString const & parameterName, SpecialType specialType, - bool inParameter, bool outParameter, OString const & methodName, - sal_Int32 index, PolymorphicUnoType const & polymorphicUnoType); + OString parameterName, SpecialType specialType, + bool inParameter, bool outParameter, OString methodName, + sal_Int32 index, PolymorphicUnoType polymorphicUnoType); sal_uInt16 generateCode(ClassFile::Code & code, std::set<OUString> * dependencies) const; @@ -442,10 +447,10 @@ sal_Int32 translateSpecialTypeFlags( } TypeInfo::TypeInfo( - OString const & name, SpecialType specialType, sal_Int32 index, + OString name, SpecialType specialType, sal_Int32 index, PolymorphicUnoType const & polymorphicUnoType, sal_Int32 typeParameterIndex): - m_kind(KIND_MEMBER), m_name(name), + m_kind(KIND_MEMBER), m_name(std::move(name)), m_flags(translateSpecialTypeFlags(specialType, false, false)), m_index(index), m_polymorphicUnoType(polymorphicUnoType), m_typeParameterIndex(typeParameterIndex) @@ -456,24 +461,24 @@ TypeInfo::TypeInfo( } TypeInfo::TypeInfo( - Kind kind, OString const & name, SpecialType specialType, Flags flags, - sal_Int32 index, PolymorphicUnoType const & polymorphicUnoType): - m_kind(kind), m_name(name), + Kind kind, OString name, SpecialType specialType, Flags flags, + sal_Int32 index, PolymorphicUnoType polymorphicUnoType): + m_kind(kind), m_name(std::move(name)), m_flags(flags | translateSpecialTypeFlags(specialType, false, false)), - m_index(index), m_polymorphicUnoType(polymorphicUnoType), + m_index(index), m_polymorphicUnoType(std::move(polymorphicUnoType)), m_typeParameterIndex(0) { assert(kind == KIND_ATTRIBUTE || kind == KIND_METHOD); } TypeInfo::TypeInfo( - OString const & parameterName, SpecialType specialType, bool inParameter, - bool outParameter, OString const & methodName, sal_Int32 index, - PolymorphicUnoType const & polymorphicUnoType): - m_kind(KIND_PARAMETER), m_name(parameterName), + OString parameterName, SpecialType specialType, bool inParameter, + bool outParameter, OString methodName, sal_Int32 index, + PolymorphicUnoType polymorphicUnoType): + m_kind(KIND_PARAMETER), m_name(std::move(parameterName)), m_flags(translateSpecialTypeFlags(specialType, inParameter, outParameter)), - m_index(index), m_methodName(methodName), - m_polymorphicUnoType(polymorphicUnoType), + m_index(index), m_methodName(std::move(methodName)), + m_polymorphicUnoType(std::move(polymorphicUnoType)), m_typeParameterIndex(0) {} @@ -482,7 +487,7 @@ sal_uInt16 TypeInfo::generateCode( { switch (m_kind) { case KIND_MEMBER: - code.instrNew("com/sun/star/lib/uno/typeinfo/MemberTypeInfo"); + code.instrNew("com/sun/star/lib/uno/typeinfo/MemberTypeInfo"_ostr); code.instrDup(); code.loadStringConstant(m_name); code.loadIntegerConstant(m_index); @@ -491,24 +496,24 @@ sal_uInt16 TypeInfo::generateCode( generatePolymorphicUnoTypeCode(code, dependencies); code.loadIntegerConstant(m_typeParameterIndex); code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/MemberTypeInfo", "<init>", - "(Ljava/lang/String;IILcom/sun/star/uno/Type;I)V"); + "com/sun/star/lib/uno/typeinfo/MemberTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;IILcom/sun/star/uno/Type;I)V"_ostr); return 8; } else if (m_typeParameterIndex >= 0) { code.instrAconstNull(); code.loadIntegerConstant(m_typeParameterIndex); code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/MemberTypeInfo", "<init>", - "(Ljava/lang/String;IILcom/sun/star/uno/Type;I)V"); + "com/sun/star/lib/uno/typeinfo/MemberTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;IILcom/sun/star/uno/Type;I)V"_ostr); return 6; } else { code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/MemberTypeInfo", "<init>", - "(Ljava/lang/String;II)V"); + "com/sun/star/lib/uno/typeinfo/MemberTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;II)V"_ostr); return 4; } case KIND_ATTRIBUTE: - code.instrNew("com/sun/star/lib/uno/typeinfo/AttributeTypeInfo"); + code.instrNew("com/sun/star/lib/uno/typeinfo/AttributeTypeInfo"_ostr); code.instrDup(); code.loadStringConstant(m_name); code.loadIntegerConstant(m_index); @@ -516,17 +521,17 @@ sal_uInt16 TypeInfo::generateCode( if (m_polymorphicUnoType.kind != PolymorphicUnoType::KIND_NONE) { generatePolymorphicUnoTypeCode(code, dependencies); code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/AttributeTypeInfo", "<init>", - "(Ljava/lang/String;IILcom/sun/star/uno/Type;)V"); + "com/sun/star/lib/uno/typeinfo/AttributeTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;IILcom/sun/star/uno/Type;)V"_ostr); return 8; } else { code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/AttributeTypeInfo", "<init>", - "(Ljava/lang/String;II)V"); + "com/sun/star/lib/uno/typeinfo/AttributeTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;II)V"_ostr); return 4; } case KIND_METHOD: - code.instrNew("com/sun/star/lib/uno/typeinfo/MethodTypeInfo"); + code.instrNew("com/sun/star/lib/uno/typeinfo/MethodTypeInfo"_ostr); code.instrDup(); code.loadStringConstant(m_name); code.loadIntegerConstant(m_index); @@ -534,17 +539,17 @@ sal_uInt16 TypeInfo::generateCode( if (m_polymorphicUnoType.kind != PolymorphicUnoType::KIND_NONE) { generatePolymorphicUnoTypeCode(code, dependencies); code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/MethodTypeInfo", "<init>", - "(Ljava/lang/String;IILcom/sun/star/uno/Type;)V"); + "com/sun/star/lib/uno/typeinfo/MethodTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;IILcom/sun/star/uno/Type;)V"_ostr); return 8; } else { code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/MethodTypeInfo", "<init>", - "(Ljava/lang/String;II)V"); + "com/sun/star/lib/uno/typeinfo/MethodTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;II)V"_ostr); return 4; } case KIND_PARAMETER: - code.instrNew("com/sun/star/lib/uno/typeinfo/ParameterTypeInfo"); + code.instrNew("com/sun/star/lib/uno/typeinfo/ParameterTypeInfo"_ostr); code.instrDup(); code.loadStringConstant(m_name); code.loadStringConstant(m_methodName); @@ -553,14 +558,14 @@ sal_uInt16 TypeInfo::generateCode( if (m_polymorphicUnoType.kind != PolymorphicUnoType::KIND_NONE) { generatePolymorphicUnoTypeCode(code, dependencies); code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/ParameterTypeInfo", "<init>", + "com/sun/star/lib/uno/typeinfo/ParameterTypeInfo"_ostr, "<init>"_ostr, ("(Ljava/lang/String;Ljava/lang/String;II" - "Lcom/sun/star/uno/Type;)V")); + "Lcom/sun/star/uno/Type;)V"_ostr)); return 9; } else { code.instrInvokespecial( - "com/sun/star/lib/uno/typeinfo/ParameterTypeInfo", "<init>", - "(Ljava/lang/String;Ljava/lang/String;II)V"); + "com/sun/star/lib/uno/typeinfo/ParameterTypeInfo"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Ljava/lang/String;II)V"_ostr); return 5; } default: @@ -574,23 +579,23 @@ void TypeInfo::generatePolymorphicUnoTypeCode( { assert(dependencies != nullptr); assert(m_polymorphicUnoType.kind != PolymorphicUnoType::KIND_NONE); - code.instrNew("com/sun/star/uno/Type"); + code.instrNew("com/sun/star/uno/Type"_ostr); code.instrDup(); code.loadStringConstant( codemaker::convertString(m_polymorphicUnoType.name)); if (m_polymorphicUnoType.kind == PolymorphicUnoType::KIND_STRUCT) { code.instrGetstatic( - "com/sun/star/uno/TypeClass", "STRUCT", - "Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/TypeClass"_ostr, "STRUCT"_ostr, + "Lcom/sun/star/uno/TypeClass;"_ostr); } else { code.instrGetstatic( - "com/sun/star/uno/TypeClass", "SEQUENCE", - "Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/TypeClass"_ostr, "SEQUENCE"_ostr, + "Lcom/sun/star/uno/TypeClass;"_ostr); } dependencies->insert("com.sun.star.uno.TypeClass"); code.instrInvokespecial( - "com/sun/star/uno/Type", "<init>", - "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"); + "com/sun/star/uno/Type"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"_ostr); } void writeClassFile( @@ -598,16 +603,16 @@ void writeClassFile( ClassFile const & classFile) { OString path; - if (options.isValid("-O")) { - path = options.getOption("-O"); + if (options.isValid("-O"_ostr)) { + path = options.getOption("-O"_ostr); } - OString filename(createFileNameFromType(path, type, ".class")); + OString filename(createFileNameFromType(path, type, ".class"_ostr)); bool bCheck = false; if (fileExists(filename)) { - if (options.isValid("-G")) { + if (options.isValid("-G"_ostr)) { return; } - bCheck = options.isValid("-Gc"); + bCheck = options.isValid("-Gc"_ostr); } FileStream tempfile; tempfile.createTempFile(getTempDir(filename)); @@ -652,11 +657,11 @@ void addTypeInfo( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC | ClassFile::ACC_FINAL), - "UNOTYPEINFO", "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;", - 0, ""); + "UNOTYPEINFO"_ostr, "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;"_ostr, + 0, ""_ostr); std::unique_ptr< ClassFile::Code > code(classFile->newCode()); code->loadIntegerConstant(static_cast< sal_Int32 >(typeInfos)); - code->instrAnewarray("com/sun/star/lib/uno/typeinfo/TypeInfo"); + code->instrAnewarray("com/sun/star/lib/uno/typeinfo/TypeInfo"_ostr); sal_Int32 index = 0; sal_uInt16 stack = 0; for (const TypeInfo& ti : typeInfo) @@ -667,8 +672,8 @@ void addTypeInfo( code->instrAastore(); } code->instrPutstatic( - className, "UNOTYPEINFO", - "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;"); + className, "UNOTYPEINFO"_ostr, + "[Lcom/sun/star/lib/uno/typeinfo/TypeInfo;"_ostr); code->instrReturn(); if (stack > SAL_MAX_UINT16 - 4) { throw CannotDumpException( @@ -678,7 +683,7 @@ void addTypeInfo( classFile->addMethod( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PRIVATE | ClassFile::ACC_STATIC), - "<clinit>", "()V", code.get(), std::vector< OString >(), ""); + "<clinit>"_ostr, "()V"_ostr, code.get(), std::vector< OString >(), ""_ostr); } void handleEnumType( @@ -692,7 +697,7 @@ void handleEnumType( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_FINAL | ClassFile::ACC_SUPER), - className, "com/sun/star/uno/Enum", "")); + className, "com/sun/star/uno/Enum"_ostr, ""_ostr)); OString classDescriptor("L" + className + ";"); for (const unoidl::EnumTypeEntity::Member& member : entity->getMembers()) { @@ -706,19 +711,19 @@ void handleEnumType( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC | ClassFile::ACC_FINAL), - fieldName + "_value", "I", - cf->addIntegerInfo(member.value), ""); + fieldName + "_value", "I"_ostr, + cf->addIntegerInfo(member.value), ""_ostr); } std::unique_ptr< ClassFile::Code > code(cf->newCode()); code->loadLocalReference(0); code->loadLocalInteger(1); - code->instrInvokespecial("com/sun/star/uno/Enum", "<init>", "(I)V"); + code->instrInvokespecial("com/sun/star/uno/Enum"_ostr, "<init>"_ostr, "(I)V"_ostr); code->instrReturn(); code->setMaxStackAndLocals(2, 2); cf->addMethod( ClassFile::ACC_PRIVATE, - "<init>", "(I)V", code.get(), - std::vector< OString >(), ""); + "<init>"_ostr, "(I)V"_ostr, code.get(), + std::vector< OString >(), ""_ostr); code = cf->newCode(); code->instrGetstatic( className, @@ -729,8 +734,8 @@ void handleEnumType( cf->addMethod( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC), - "getDefault", "()" + classDescriptor, - code.get(), std::vector< OString >(), ""); + "getDefault"_ostr, "()" + classDescriptor, + code.get(), std::vector< OString >(), ""_ostr); code = cf->newCode(); code->loadLocalInteger(0); std::map< sal_Int32, OString > map; @@ -779,8 +784,7 @@ void handleEnumType( std::unique_ptr< ClassFile::Code > blockCode(cf->newCode()); blockCode->instrGetstatic(className, pair.second, classDescriptor); blockCode->instrAreturn(); - blocks.emplace_back(pair.first, blockCode.get()); - blockCode.release(); + blocks.emplace_back(pair.first, blockCode.release()); } code->instrLookupswitch(defCode.get(), blocks); for (const std::pair< sal_Int32, ClassFile::Code * >& pair : blocks) @@ -792,15 +796,15 @@ void handleEnumType( cf->addMethod( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC), - "fromInt", "(I)" + classDescriptor, code.get(), - std::vector< OString >(), ""); + "fromInt"_ostr, "(I)" + classDescriptor, code.get(), + std::vector< OString >(), ""_ostr); code = cf->newCode(); for (const unoidl::EnumTypeEntity::Member& member : entity->getMembers()) { code->instrNew(className); code->instrDup(); code->loadIntegerConstant(member.value); - code->instrInvokespecial(className, "<init>", "(I)V"); + code->instrInvokespecial(className, "<init>"_ostr, "(I)V"_ostr); code->instrPutstatic( className, codemaker::convertString(member.name), classDescriptor); } @@ -809,7 +813,7 @@ void handleEnumType( cf->addMethod( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PRIVATE | ClassFile::ACC_STATIC), - "<clinit>", "()V", code.get(), std::vector< OString >(), ""); + "<clinit>"_ostr, "()V"_ostr, code.get(), std::vector< OString >(), ""_ostr); writeClassFile(options, className, *cf); } @@ -826,7 +830,7 @@ void addField( SpecialType specialType; PolymorphicUnoType polymorphicUnoType; if (typeParameterIndex >= 0) { - descriptor = "Ljava/lang/Object;"; + descriptor = "Ljava/lang/Object;"_ostr; signature = "T" + codemaker::convertString(type).replace('.', '/') + ";"; specialType = SPECIAL_TYPE_NONE; //TODO: SPECIAL_TYPE_TYPE_PARAMETER? @@ -879,19 +883,19 @@ sal_uInt16 addFieldInit( case codemaker::UnoType::Sort::String: code->loadLocalReference(0); code->loadStringConstant(OString()); - code->instrPutfield(className, name, "Ljava/lang/String;"); + code->instrPutfield(className, name, "Ljava/lang/String;"_ostr); return 2; case codemaker::UnoType::Sort::Type: code->loadLocalReference(0); code->instrGetstatic( - "com/sun/star/uno/Type", "VOID", "Lcom/sun/star/uno/Type;"); - code->instrPutfield(className, name, "Lcom/sun/star/uno/Type;"); + "com/sun/star/uno/Type"_ostr, "VOID"_ostr, "Lcom/sun/star/uno/Type;"_ostr); + code->instrPutfield(className, name, "Lcom/sun/star/uno/Type;"_ostr); return 2; case codemaker::UnoType::Sort::Any: code->loadLocalReference(0); code->instrGetstatic( - "com/sun/star/uno/Any", "VOID", "Lcom/sun/star/uno/Any;"); - code->instrPutfield(className, name, "Ljava/lang/Object;"); + "com/sun/star/uno/Any"_ostr, "VOID"_ostr, "Lcom/sun/star/uno/Any;"_ostr); + code->instrPutfield(className, name, "Ljava/lang/Object;"_ostr); return 2; case codemaker::UnoType::Sort::Enum: { @@ -919,7 +923,7 @@ sal_uInt16 addFieldInit( code->instrDup(); code->instrInvokespecial( codemaker::convertString(nucleus).replace('.', '/'), - "<init>", "()V"); + "<init>"_ostr, "()V"_ostr); OStringBuffer desc(128); translateUnoTypeToDescriptor( manager, sort, nucleus, 0, args, false, false, dependencies, @@ -989,11 +993,11 @@ sal_uInt16 addLoadLocal( switch (sort) { case codemaker::UnoType::Sort::Boolean: if (any) { - code->instrNew("java/lang/Boolean"); + code->instrNew("java/lang/Boolean"_ostr); code->instrDup(); code->loadLocalInteger(*index); code->instrInvokespecial( - "java/lang/Boolean", "<init>", "(Z)V"); + "java/lang/Boolean"_ostr, "<init>"_ostr, "(Z)V"_ostr); stack = 3; } else { code->loadLocalInteger(*index); @@ -1003,11 +1007,11 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Byte: if (any) { - code->instrNew("java/lang/Byte"); + code->instrNew("java/lang/Byte"_ostr); code->instrDup(); code->loadLocalInteger(*index); code->instrInvokespecial( - "java/lang/Byte", "<init>", "(B)V"); + "java/lang/Byte"_ostr, "<init>"_ostr, "(B)V"_ostr); stack = 3; } else { code->loadLocalInteger(*index); @@ -1017,11 +1021,11 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Short: if (any) { - code->instrNew("java/lang/Short"); + code->instrNew("java/lang/Short"_ostr); code->instrDup(); code->loadLocalInteger(*index); code->instrInvokespecial( - "java/lang/Short", "<init>", "(S)V"); + "java/lang/Short"_ostr, "<init>"_ostr, "(S)V"_ostr); stack = 3; } else { code->loadLocalInteger(*index); @@ -1031,19 +1035,19 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::UnsignedShort: if (any) { - code->instrNew("com/sun/star/uno/Any"); + code->instrNew("com/sun/star/uno/Any"_ostr); code->instrDup(); code->instrGetstatic( - "com/sun/star/uno/Type", "UNSIGNED_SHORT", - "Lcom/sun/star/uno/Type;"); - code->instrNew("java/lang/Short"); + "com/sun/star/uno/Type"_ostr, "UNSIGNED_SHORT"_ostr, + "Lcom/sun/star/uno/Type;"_ostr); + code->instrNew("java/lang/Short"_ostr); code->instrDup(); code->loadLocalInteger(*index); code->instrInvokespecial( - "java/lang/Short", "<init>", "(S)V"); + "java/lang/Short"_ostr, "<init>"_ostr, "(S)V"_ostr); code->instrInvokespecial( - "com/sun/star/uno/Any", "<init>", - "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"); + "com/sun/star/uno/Any"_ostr, "<init>"_ostr, + "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"_ostr); stack = 6; } else { code->loadLocalInteger(*index); @@ -1053,11 +1057,11 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Long: if (any) { - code->instrNew("java/lang/Integer"); + code->instrNew("java/lang/Integer"_ostr); code->instrDup(); code->loadLocalInteger(*index); code->instrInvokespecial( - "java/lang/Integer", "<init>", "(I)V"); + "java/lang/Integer"_ostr, "<init>"_ostr, "(I)V"_ostr); stack = 3; } else { code->loadLocalInteger(*index); @@ -1067,19 +1071,19 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::UnsignedLong: if (any) { - code->instrNew("com/sun/star/uno/Any"); + code->instrNew("com/sun/star/uno/Any"_ostr); code->instrDup(); code->instrGetstatic( - "com/sun/star/uno/Type", "UNSIGNED_LONG", - "Lcom/sun/star/uno/Type;"); - code->instrNew("java/lang/Integer"); + "com/sun/star/uno/Type"_ostr, "UNSIGNED_LONG"_ostr, + "Lcom/sun/star/uno/Type;"_ostr); + code->instrNew("java/lang/Integer"_ostr); code->instrDup(); code->loadLocalInteger(*index); code->instrInvokespecial( - "java/lang/Integer", "<init>", "(I)V"); + "java/lang/Integer"_ostr, "<init>"_ostr, "(I)V"_ostr); code->instrInvokespecial( - "com/sun/star/uno/Any", "<init>", - "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"); + "com/sun/star/uno/Any"_ostr, "<init>"_ostr, + "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"_ostr); stack = 6; } else { code->loadLocalInteger(*index); @@ -1089,11 +1093,11 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Hyper: if (any) { - code->instrNew("java/lang/Long"); + code->instrNew("java/lang/Long"_ostr); code->instrDup(); code->loadLocalLong(*index); code->instrInvokespecial( - "java/lang/Long", "<init>", "(J)V"); + "java/lang/Long"_ostr, "<init>"_ostr, "(J)V"_ostr); stack = 4; } else { code->loadLocalLong(*index); @@ -1103,19 +1107,19 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::UnsignedHyper: if (any) { - code->instrNew("com/sun/star/uno/Any"); + code->instrNew("com/sun/star/uno/Any"_ostr); code->instrDup(); code->instrGetstatic( - "com/sun/star/uno/Type", "UNSIGNED_HYPER", - "Lcom/sun/star/uno/Type;"); - code->instrNew("java/lang/Long"); + "com/sun/star/uno/Type"_ostr, "UNSIGNED_HYPER"_ostr, + "Lcom/sun/star/uno/Type;"_ostr); + code->instrNew("java/lang/Long"_ostr); code->instrDup(); code->loadLocalLong(*index); code->instrInvokespecial( - "java/lang/Long", "<init>", "(J)V"); + "java/lang/Long"_ostr, "<init>"_ostr, "(J)V"_ostr); code->instrInvokespecial( - "com/sun/star/uno/Any", "<init>", - "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"); + "com/sun/star/uno/Any"_ostr, "<init>"_ostr, + "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"_ostr); stack = 7; } else { code->loadLocalLong(*index); @@ -1125,11 +1129,11 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Float: if (any) { - code->instrNew("java/lang/Float"); + code->instrNew("java/lang/Float"_ostr); code->instrDup(); code->loadLocalFloat(*index); code->instrInvokespecial( - "java/lang/Float", "<init>", "(F)V"); + "java/lang/Float"_ostr, "<init>"_ostr, "(F)V"_ostr); stack = 3; } else { code->loadLocalFloat(*index); @@ -1139,11 +1143,11 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Double: if (any) { - code->instrNew("java/lang/Double"); + code->instrNew("java/lang/Double"_ostr); code->instrDup(); code->loadLocalDouble(*index); code->instrInvokespecial( - "java/lang/Double", "<init>", "(D)V"); + "java/lang/Double"_ostr, "<init>"_ostr, "(D)V"_ostr); stack = 4; } else { code->loadLocalDouble(*index); @@ -1153,11 +1157,11 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Char: if (any) { - code->instrNew("java/lang/Character"); + code->instrNew("java/lang/Character"_ostr); code->instrDup(); code->loadLocalInteger(*index); code->instrInvokespecial( - "java/lang/Character", "<init>", "(C)V"); + "java/lang/Character"_ostr, "<init>"_ostr, "(C)V"_ostr); stack = 3; } else { code->loadLocalInteger(*index); @@ -1180,24 +1184,24 @@ sal_uInt16 addLoadLocal( case codemaker::UnoType::Sort::PlainStruct: case codemaker::UnoType::Sort::InstantiatedPolymorphicStruct: if (any) { - code->instrNew("com/sun/star/uno/Any"); + code->instrNew("com/sun/star/uno/Any"_ostr); code->instrDup(); - code->instrNew("com/sun/star/uno/Type"); + code->instrNew("com/sun/star/uno/Type"_ostr); code->instrDup(); code->loadStringConstant( codemaker::convertString( createUnoName(manager, nucleus, rank, args))); code->instrGetstatic( - "com/sun/star/uno/TypeClass", "STRUCT", - "Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/TypeClass"_ostr, "STRUCT"_ostr, + "Lcom/sun/star/uno/TypeClass;"_ostr); dependencies->insert("com.sun.star.uno.TypeClass"); code->instrInvokespecial( - "com/sun/star/uno/Type", "<init>", - "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"); + "com/sun/star/uno/Type"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"_ostr); code->loadLocalReference(*index); code->instrInvokespecial( - "com/sun/star/uno/Any", "<init>", - "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"); + "com/sun/star/uno/Any"_ostr, "<init>"_ostr, + "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"_ostr); stack = 6; } else { code->loadLocalReference(*index); @@ -1207,22 +1211,22 @@ sal_uInt16 addLoadLocal( break; case codemaker::UnoType::Sort::Interface: if (any && nucleus != "com.sun.star.uno.XInterface") { - code->instrNew("com/sun/star/uno/Any"); + code->instrNew("com/sun/star/uno/Any"_ostr); code->instrDup(); - code->instrNew("com/sun/star/uno/Type"); + code->instrNew("com/sun/star/uno/Type"_ostr); code->instrDup(); code->loadStringConstant(codemaker::convertString(nucleus)); code->instrGetstatic( - "com/sun/star/uno/TypeClass", "INTERFACE", - "Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/TypeClass"_ostr, "INTERFACE"_ostr, + "Lcom/sun/star/uno/TypeClass;"_ostr); dependencies->insert("com.sun.star.uno.TypeClass"); code->instrInvokespecial( - "com/sun/star/uno/Type", "<init>", - "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"); + "com/sun/star/uno/Type"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"_ostr); code->loadLocalReference(*index); code->instrInvokespecial( - "com/sun/star/uno/Any", "<init>", - "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"); + "com/sun/star/uno/Any"_ostr, "<init>"_ostr, + "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"_ostr); stack = 6; } else { code->loadLocalReference(*index); @@ -1278,19 +1282,19 @@ sal_uInt16 addLoadLocal( } } if (bWrap) { - code->instrNew("com/sun/star/uno/Any"); + code->instrNew("com/sun/star/uno/Any"_ostr); code->instrDup(); - code->instrNew("com/sun/star/uno/Type"); + code->instrNew("com/sun/star/uno/Type"_ostr); code->instrDup(); code->loadStringConstant( codemaker::convertString( createUnoName(manager, nucleus, rank, args))); code->instrInvokespecial( - "com/sun/star/uno/Type", "<init>", "(Ljava/lang/String;)V"); + "com/sun/star/uno/Type"_ostr, "<init>"_ostr, "(Ljava/lang/String;)V"_ostr); code->loadLocalReference(*index); code->instrInvokespecial( - "com/sun/star/uno/Any", "<init>", - "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"); + "com/sun/star/uno/Any"_ostr, "<init>"_ostr, + "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)V"_ostr); stack = 5; } else { code->loadLocalReference(*index); @@ -1318,7 +1322,7 @@ sal_uInt16 addDirectArgument( OString desc; if (typeParameter) { methodDescriptor->addTypeParameter(fieldType); - desc = "Ljava/lang/Object;"; + desc = "Ljava/lang/Object;"_ostr; } else { methodDescriptor->addParameter(fieldType, false, true, nullptr); getFieldDescriptor(manager, dependencies, fieldType, &desc, nullptr, nullptr); @@ -1369,7 +1373,7 @@ void handlePlainStructType( OString className(codemaker::convertString(name).replace('.', '/')); OString superClass; if (entity->getDirectBase().isEmpty()) { - superClass = "java/lang/Object"; + superClass = "java/lang/Object"_ostr; } else { superClass = codemaker::convertString(entity->getDirectBase()). replace('.', '/'); @@ -1379,7 +1383,7 @@ void handlePlainStructType( new ClassFile( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_SUPER), - className, superClass, "")); + className, superClass, ""_ostr)); std::vector< TypeInfo > typeInfo; sal_Int32 index = 0; for (const unoidl::PlainStructTypeEntity::Member& member : entity->getDirectMembers()) @@ -1390,7 +1394,7 @@ void handlePlainStructType( } std::unique_ptr< ClassFile::Code > code(cf->newCode()); code->loadLocalReference(0); - code->instrInvokespecial(superClass, "<init>", "()V"); + code->instrInvokespecial(superClass, "<init>"_ostr, "()V"_ostr); sal_uInt16 stack = 0; for (const unoidl::PlainStructTypeEntity::Member& member : entity->getDirectMembers()) { @@ -1403,8 +1407,8 @@ void handlePlainStructType( code->instrReturn(); code->setMaxStackAndLocals(stack + 1, 1); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", "()V", code.get(), - std::vector< OString >(), ""); + ClassFile::ACC_PUBLIC, "<init>"_ostr, "()V"_ostr, code.get(), + std::vector< OString >(), ""_ostr); MethodDescriptor desc(manager, dependencies, u"void", nullptr, nullptr); code = cf->newCode(); code->loadLocalReference(0); @@ -1414,7 +1418,7 @@ void handlePlainStructType( manager, dependencies, &desc, code.get(), entity->getDirectBase(), &index2); } - code->instrInvokespecial(superClass, "<init>", desc.getDescriptor()); + code->instrInvokespecial(superClass, "<init>"_ostr, desc.getDescriptor()); sal_uInt16 maxSize = index2; for (const unoidl::PlainStructTypeEntity::Member& member : entity->getDirectMembers()) { @@ -1427,7 +1431,7 @@ void handlePlainStructType( code->instrReturn(); code->setMaxStackAndLocals(maxSize, index2); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", desc.getDescriptor(), code.get(), + ClassFile::ACC_PUBLIC, "<init>"_ostr, desc.getDescriptor(), code.get(), std::vector< OString >(), desc.getSignature()); addTypeInfo(className, typeInfo, dependencies, cf.get()); writeClassFile(options, className, *cf); @@ -1459,7 +1463,7 @@ void handlePolyStructType( new ClassFile( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_SUPER), - className, "java/lang/Object", sig.makeStringAndClear())); + className, "java/lang/Object"_ostr, sig.makeStringAndClear())); std::vector< TypeInfo > typeInfo; index = 0; for (const unoidl::PolymorphicStructTypeTemplateEntity::Member& member : entity->getMembers()) @@ -1481,7 +1485,7 @@ void handlePolyStructType( } std::unique_ptr< ClassFile::Code > code(cf->newCode()); code->loadLocalReference(0); - code->instrInvokespecial("java/lang/Object", "<init>", "()V"); + code->instrInvokespecial("java/lang/Object"_ostr, "<init>"_ostr, "()V"_ostr); sal_uInt16 stack = 0; for (const unoidl::PolymorphicStructTypeTemplateEntity::Member& member : entity->getMembers()) { @@ -1494,14 +1498,14 @@ void handlePolyStructType( code->instrReturn(); code->setMaxStackAndLocals(stack + 1, 1); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", "()V", code.get(), - std::vector< OString >(), ""); + ClassFile::ACC_PUBLIC, "<init>"_ostr, "()V"_ostr, code.get(), + std::vector< OString >(), ""_ostr); MethodDescriptor desc(manager, dependencies, u"void", nullptr, nullptr); code = cf->newCode(); code->loadLocalReference(0); sal_uInt16 index2 = 1; code->instrInvokespecial( - "java/lang/Object", "<init>", desc.getDescriptor()); + "java/lang/Object"_ostr, "<init>"_ostr, desc.getDescriptor()); sal_uInt16 maxSize = index2; for (const unoidl::PolymorphicStructTypeTemplateEntity::Member& member : entity->getMembers()) { @@ -1514,7 +1518,7 @@ void handlePolyStructType( code->instrReturn(); code->setMaxStackAndLocals(maxSize, index2); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", desc.getDescriptor(), code.get(), + ClassFile::ACC_PUBLIC, "<init>"_ostr, desc.getDescriptor(), code.get(), std::vector< OString >(), desc.getSignature()); addTypeInfo(className, typeInfo, dependencies, cf.get()); writeClassFile(options, className, *cf); @@ -1566,10 +1570,10 @@ void handleExceptionType( OString superClass; if (className == "com/sun/star/uno/Exception") { baseException = true; - superClass = "java/lang/Exception"; + superClass = "java/lang/Exception"_ostr; } else if (className == "com/sun/star/uno/RuntimeException") { baseRuntimeException = true; - superClass = "java/lang/RuntimeException"; + superClass = "java/lang/RuntimeException"_ostr; } else { if (entity->getDirectBase().isEmpty()) { throw CannotDumpException( @@ -1583,7 +1587,7 @@ void handleExceptionType( new ClassFile( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_SUPER), - className, superClass, "")); + className, superClass, ""_ostr)); std::vector< TypeInfo > typeInfo; sal_Int32 index = 0; if (baseRuntimeException) { @@ -1605,7 +1609,7 @@ void handleExceptionType( // create default constructor std::unique_ptr< ClassFile::Code > code(cf->newCode()); code->loadLocalReference(0); - code->instrInvokespecial(superClass, "<init>", "()V"); + code->instrInvokespecial(superClass, "<init>"_ostr, "()V"_ostr); sal_uInt16 stack = 0; if (baseRuntimeException) { stack = std::max( @@ -1629,15 +1633,15 @@ void handleExceptionType( code->instrReturn(); code->setMaxStackAndLocals(stack + 1, 1); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", "()V", code.get(), - std::vector< OString >(), ""); + ClassFile::ACC_PUBLIC, "<init>"_ostr, "()V"_ostr, code.get(), + std::vector< OString >(), ""_ostr); // create (Throwable Cause) constructor code = cf->newCode(); code->loadLocalReference(0); code->loadLocalReference(1); - code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/Throwable;)V"); + code->instrInvokespecial(superClass, "<init>"_ostr, "(Ljava/lang/Throwable;)V"_ostr); stack = 0; if (baseRuntimeException) { stack = std::max( @@ -1661,8 +1665,8 @@ void handleExceptionType( code->instrReturn(); code->setMaxStackAndLocals(stack + 2, 2); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", "(Ljava/lang/Throwable;)V", code.get(), - std::vector< OString >(), ""); + ClassFile::ACC_PUBLIC, "<init>"_ostr, "(Ljava/lang/Throwable;)V"_ostr, code.get(), + std::vector< OString >(), ""_ostr); // create (Throwable Cause, String Message) constructor code = cf->newCode(); @@ -1670,11 +1674,11 @@ void handleExceptionType( if (baseException || baseRuntimeException) { code->loadLocalReference(2); code->loadLocalReference(1); - code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/String;Ljava/lang/Throwable;)V"); + code->instrInvokespecial(superClass, "<init>"_ostr, "(Ljava/lang/String;Ljava/lang/Throwable;)V"_ostr); } else { code->loadLocalReference(1); code->loadLocalReference(2); - code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/Throwable;Ljava/lang/String;)V"); + code->instrInvokespecial(superClass, "<init>"_ostr, "(Ljava/lang/Throwable;Ljava/lang/String;)V"_ostr); } stack = 0; if (baseRuntimeException) { @@ -1699,14 +1703,14 @@ void handleExceptionType( code->instrReturn(); code->setMaxStackAndLocals(stack + 3, 3); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", "(Ljava/lang/Throwable;Ljava/lang/String;)V", code.get(), - std::vector< OString >(), ""); + ClassFile::ACC_PUBLIC, "<init>"_ostr, "(Ljava/lang/Throwable;Ljava/lang/String;)V"_ostr, code.get(), + std::vector< OString >(), ""_ostr); // create (String Message) constructor code = cf->newCode(); code->loadLocalReference(0); code->loadLocalReference(1); - code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/String;)V"); + code->instrInvokespecial(superClass, "<init>"_ostr, "(Ljava/lang/String;)V"_ostr); stack = 0; if (baseRuntimeException) { stack = std::max( @@ -1730,8 +1734,8 @@ void handleExceptionType( code->instrReturn(); code->setMaxStackAndLocals(stack + 2, 2); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", "(Ljava/lang/String;)V", code.get(), - std::vector< OString >(), ""); + ClassFile::ACC_PUBLIC, "<init>"_ostr, "(Ljava/lang/String;)V"_ostr, code.get(), + std::vector< OString >(), ""_ostr); // create (String Message, Object Context, T1 m1, ..., Tn mn) constructor @@ -1746,14 +1750,14 @@ void handleExceptionType( manager, dependencies, &desc1, code.get(), entity->getDirectBase(), &index2); } - code->instrInvokespecial(superClass, "<init>", desc1.getDescriptor()); + code->instrInvokespecial(superClass, "<init>"_ostr, desc1.getDescriptor()); sal_uInt16 maxSize = index2; if (baseRuntimeException) { maxSize = std::max( maxSize, addDirectArgument( manager, dependencies, &desc1, code.get(), &index2, className, - "Context", false, "com.sun.star.uno.XInterface")); + "Context"_ostr, false, "com.sun.star.uno.XInterface")); } for (std::vector< unoidl::ExceptionTypeEntity::Member >::const_iterator i( entity->getDirectMembers().begin()); @@ -1771,7 +1775,7 @@ void handleExceptionType( code->instrReturn(); code->setMaxStackAndLocals(maxSize, index2); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", desc1.getDescriptor(), code.get(), + ClassFile::ACC_PUBLIC, "<init>"_ostr, desc1.getDescriptor(), code.get(), std::vector< OString >(), desc1.getSignature()); // create (Throwable Cause, String Message, Object Context, T1 m1, ..., Tn mn) constructor @@ -1785,14 +1789,14 @@ void handleExceptionType( if (baseException || baseRuntimeException) { code->loadLocalReference(2); code->loadLocalReference(1); - code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/String;Ljava/lang/Throwable;)V"); + code->instrInvokespecial(superClass, "<init>"_ostr, "(Ljava/lang/String;Ljava/lang/Throwable;)V"_ostr); } else { code->loadLocalReference(1); code->loadLocalReference(2); addExceptionBaseArguments( manager, dependencies, &desc2, code.get(), entity->getDirectBase(), &index3); - code->instrInvokespecial(superClass, "<init>", OString::Concat("(Ljava/lang/Throwable;") + desc2.getDescriptor().subView(1)); + code->instrInvokespecial(superClass, "<init>"_ostr, OString::Concat("(Ljava/lang/Throwable;") + desc2.getDescriptor().subView(1)); } sal_uInt16 maxSize2 = index3; if (baseRuntimeException) { @@ -1800,7 +1804,7 @@ void handleExceptionType( maxSize2, addDirectArgument( manager, dependencies, &desc2, code.get(), &index3, className, - "Context", false, "com.sun.star.uno.XInterface")); + "Context"_ostr, false, "com.sun.star.uno.XInterface")); } for (std::vector< unoidl::ExceptionTypeEntity::Member >::const_iterator i( entity->getDirectMembers().begin()); @@ -1818,7 +1822,7 @@ void handleExceptionType( code->instrReturn(); code->setMaxStackAndLocals(maxSize2, index3); cf->addMethod( - ClassFile::ACC_PUBLIC, "<init>", OString::Concat("(Ljava/lang/Throwable;") + desc2.getDescriptor().subView(1), code.get(), + ClassFile::ACC_PUBLIC, "<init>"_ostr, OString::Concat("(Ljava/lang/Throwable;") + desc2.getDescriptor().subView(1), code.get(), std::vector< OString >(), desc2.getSignature()); addTypeInfo(className, typeInfo, dependencies, cf.get()); @@ -1857,7 +1861,7 @@ void handleInterfaceType( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_INTERFACE | ClassFile::ACC_ABSTRACT), - className, "java/lang/Object", "")); + className, "java/lang/Object"_ostr, ""_ostr)); for (const unoidl::AnnotatedReference& ar : entity->getDirectMandatoryBases()) { dependencies->insert(ar.name); @@ -1867,7 +1871,7 @@ void handleInterfaceType( // java.util.EventListener ("A tagging interface that all event listener // interfaces must extend"): if (className == "com/sun/star/lang/XEventListener") { - cf->addInterface("java/util/EventListener"); + cf->addInterface("java/util/EventListener"_ostr); } std::vector< TypeInfo > typeInfo; if (className != "com/sun/star/uno/XInterface") { @@ -2000,7 +2004,7 @@ void handleConstantGroup( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_INTERFACE | ClassFile::ACC_ABSTRACT), - className, "java/lang/Object", "")); + className, "java/lang/Object"_ostr, ""_ostr)); for (const unoidl::ConstantGroupEntity::Member& member : entity->getMembers()) { OUString type; @@ -2094,8 +2098,8 @@ void addConstructor( code->loadLocalReference(0); // stack: context code->instrInvokeinterface( - "com/sun/star/uno/XComponentContext", "getServiceManager", - "()Lcom/sun/star/lang/XMultiComponentFactory;", 1); + "com/sun/star/uno/XComponentContext"_ostr, "getServiceManager"_ostr, + "()Lcom/sun/star/lang/XMultiComponentFactory;"_ostr, 1); // stack: factory code->loadStringConstant(unoName); // stack: factory serviceName @@ -2112,10 +2116,10 @@ void addConstructor( // stack: factory serviceName context tryStart = code->getPosition(); code->instrInvokeinterface( - "com/sun/star/lang/XMultiComponentFactory", - "createInstanceWithContext", + "com/sun/star/lang/XMultiComponentFactory"_ostr, + "createInstanceWithContext"_ostr, ("(Ljava/lang/String;Lcom/sun/star/uno/XComponentContext;)" - "Ljava/lang/Object;"), + "Ljava/lang/Object;"_ostr), 3); tryEnd = code->getPosition(); // stack: instance @@ -2133,7 +2137,7 @@ void addConstructor( } else { code->loadIntegerConstant(constructor.parameters.size()); // stack: factory serviceName N - code->instrAnewarray("java/lang/Object"); + code->instrAnewarray("java/lang/Object"_ostr); // stack: factory serviceName args stack = 0; sal_Int32 n = 0; @@ -2160,10 +2164,10 @@ void addConstructor( // stack: factory serviceName args context tryStart = code->getPosition(); code->instrInvokeinterface( - "com/sun/star/lang/XMultiComponentFactory", - "createInstanceWithArgumentsAndContext", + "com/sun/star/lang/XMultiComponentFactory"_ostr, + "createInstanceWithArgumentsAndContext"_ostr, ("(Ljava/lang/String;[Ljava/lang/Object;" - "Lcom/sun/star/uno/XComponentContext;)Ljava/lang/Object;"), + "Lcom/sun/star/uno/XComponentContext;)Ljava/lang/Object;"_ostr), 4); tryEnd = code->getPosition(); // stack: instance @@ -2173,9 +2177,9 @@ void addConstructor( code->loadLocalReference(0); // stack: instance context code->instrInvokestatic( - className, "$castInstance", + className, "$castInstance"_ostr, ("(Ljava/lang/Object;Lcom/sun/star/uno/XComponentContext;)" - "Ljava/lang/Object;")); + "Ljava/lang/Object;"_ostr)); // stack: instance code->instrCheckcast( codemaker::convertString(returnType).replace('.', '/')); @@ -2185,12 +2189,12 @@ void addConstructor( ClassFile::Code::Position pos1 = code->getPosition(); // stack: e code->instrInvokevirtual( - "java/lang/Throwable", "toString", "()Ljava/lang/String;"); + "java/lang/Throwable"_ostr, "toString"_ostr, "()Ljava/lang/String;"_ostr); // stack: str localIndex = std::max< sal_uInt16 >(localIndex, 2); code->storeLocalReference(1); // stack: - - code->instrNew("com/sun/star/uno/DeploymentException"); + code->instrNew("com/sun/star/uno/DeploymentException"_ostr); // stack: ex code->instrDup(); // stack: ex ex @@ -2201,21 +2205,21 @@ void addConstructor( code->loadLocalReference(1); // stack: ex ex "..." str code->instrInvokevirtual( - "java/lang/String", "concat", - "(Ljava/lang/String;)Ljava/lang/String;"); + "java/lang/String"_ostr, "concat"_ostr, + "(Ljava/lang/String;)Ljava/lang/String;"_ostr); // stack: ex ex "..." code->loadLocalReference(0); // stack: ex ex "..." context code->instrInvokespecial( - "com/sun/star/uno/DeploymentException", "<init>", - "(Ljava/lang/String;Ljava/lang/Object;)V"); + "com/sun/star/uno/DeploymentException"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Ljava/lang/Object;)V"_ostr); // stack: ex ClassFile::Code::Position pos2 = code->getPosition(); code->instrAthrow(); addExceptionHandlers( &tree.getRoot(), tryStart, tryEnd, pos2, code.get()); code->addException( - tryStart, tryEnd, pos1, "com/sun/star/uno/Exception"); + tryStart, tryEnd, pos1, "com/sun/star/uno/Exception"_ostr); dependencies->insert("com.sun.star.uno.Exception"); stack = std::max< sal_uInt16 >(stack, 4); } @@ -2224,7 +2228,7 @@ void addConstructor( access, codemaker::java::translateUnoToJavaIdentifier( (constructor.defaultConstructor - ? OString("create") : codemaker::convertString(constructor.name)), + ? "create"_ostr : codemaker::convertString(constructor.name)), "method"), desc.getDescriptor(), code.get(), exc, desc.getSignature()); } @@ -2245,7 +2249,7 @@ void handleService( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_FINAL | ClassFile::ACC_SUPER), - className, "java/lang/Object", "")); + className, "java/lang/Object"_ostr, ""_ostr)); if (!entity->getConstructors().empty()) { OString realJavaBaseName( codemaker::convertString(entity->getBase())); @@ -2264,26 +2268,26 @@ void handleService( // Synthetic castInstance method: { std::unique_ptr< ClassFile::Code > code(cf->newCode()); - code->instrNew("com/sun/star/uno/Type"); + code->instrNew("com/sun/star/uno/Type"_ostr); // stack: type code->instrDup(); // stack: type type code->loadStringConstant(realJavaBaseName); // stack: type type "..." code->instrGetstatic( - "com/sun/star/uno/TypeClass", "INTERFACE", - "Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/TypeClass"_ostr, "INTERFACE"_ostr, + "Lcom/sun/star/uno/TypeClass;"_ostr); // stack: type type "..." INTERFACE code->instrInvokespecial( - "com/sun/star/uno/Type", "<init>", - "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"); + "com/sun/star/uno/Type"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"_ostr); // stack: type code->loadLocalReference(0); // stack: type instance code->instrInvokestatic( - "com/sun/star/uno/UnoRuntime", "queryInterface", + "com/sun/star/uno/UnoRuntime"_ostr, "queryInterface"_ostr, ("(Lcom/sun/star/uno/Type;Ljava/lang/Object;)" - "Ljava/lang/Object;")); + "Ljava/lang/Object;"_ostr)); // stack: instance code->instrDup(); // stack: instance instance @@ -2293,7 +2297,7 @@ void handleService( code->branchHere(branch); code->instrPop(); // stack: - - code->instrNew("com/sun/star/uno/DeploymentException"); + code->instrNew("com/sun/star/uno/DeploymentException"_ostr); // stack: ex code->instrDup(); // stack: ex ex @@ -2304,8 +2308,8 @@ void handleService( code->loadLocalReference(1); // stack: ex ex "..." context code->instrInvokespecial( - "com/sun/star/uno/DeploymentException", "<init>", - "(Ljava/lang/String;Ljava/lang/Object;)V"); + "com/sun/star/uno/DeploymentException"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Ljava/lang/Object;)V"_ostr); // stack: ex code->instrAthrow(); code->setMaxStackAndLocals(4, 2); @@ -2313,10 +2317,10 @@ void handleService( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PRIVATE | ClassFile::ACC_STATIC | ClassFile::ACC_SYNTHETIC), - "$castInstance", + "$castInstance"_ostr, ("(Ljava/lang/Object;Lcom/sun/star/uno/XComponentContext;)" - "Ljava/lang/Object;"), - code.get(), std::vector< OString >(), ""); + "Ljava/lang/Object;"_ostr), + code.get(), std::vector< OString >(), ""_ostr); } } writeClassFile(options, className, *cf); @@ -2344,7 +2348,7 @@ void handleSingleton( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_FINAL | ClassFile::ACC_SUPER), - className, "java/lang/Object", "")); + className, "java/lang/Object"_ostr, ""_ostr)); MethodDescriptor desc(manager, dependencies, entity->getBase(), nullptr, nullptr); desc.addParameter(u"com.sun.star.uno.XComponentContext", false, false, nullptr); std::unique_ptr< ClassFile::Code > code(cf->newCode()); @@ -2353,55 +2357,55 @@ void handleSingleton( code->loadStringConstant("/singletons/" + unoName); // stack: context "..." code->instrInvokeinterface( - "com/sun/star/uno/XComponentContext", "getValueByName", - "(Ljava/lang/String;)Ljava/lang/Object;", 2); + "com/sun/star/uno/XComponentContext"_ostr, "getValueByName"_ostr, + "(Ljava/lang/String;)Ljava/lang/Object;"_ostr, 2); // stack: value code->instrDup(); // stack: value value - code->instrInstanceof("com/sun/star/uno/Any"); + code->instrInstanceof("com/sun/star/uno/Any"_ostr); // stack: value 0/1 ClassFile::Code::Branch branch1 = code->instrIfeq(); // stack: value - code->instrCheckcast("com/sun/star/uno/Any"); + code->instrCheckcast("com/sun/star/uno/Any"_ostr); // stack: value code->instrDup(); // stack: value value code->instrInvokevirtual( - "com/sun/star/uno/Any", "getType", "()Lcom/sun/star/uno/Type;"); + "com/sun/star/uno/Any"_ostr, "getType"_ostr, "()Lcom/sun/star/uno/Type;"_ostr); // stack: value type code->instrInvokevirtual( - "com/sun/star/uno/Type", "getTypeClass", - "()Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/Type"_ostr, "getTypeClass"_ostr, + "()Lcom/sun/star/uno/TypeClass;"_ostr); // stack: value typeClass code->instrGetstatic( - "com/sun/star/uno/TypeClass", "INTERFACE", - "Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/TypeClass"_ostr, "INTERFACE"_ostr, + "Lcom/sun/star/uno/TypeClass;"_ostr); // stack: value typeClass INTERFACE ClassFile::Code::Branch branch2 = code->instrIfAcmpne(); // stack: value code->instrInvokevirtual( - "com/sun/star/uno/Any", "getObject", "()Ljava/lang/Object;"); + "com/sun/star/uno/Any"_ostr, "getObject"_ostr, "()Ljava/lang/Object;"_ostr); // stack: value code->branchHere(branch1); - code->instrNew("com/sun/star/uno/Type"); + code->instrNew("com/sun/star/uno/Type"_ostr); // stack: value type code->instrDup(); // stack: value type type code->loadStringConstant(realJavaBaseName); // stack: value type type "..." code->instrGetstatic( - "com/sun/star/uno/TypeClass", "INTERFACE", - "Lcom/sun/star/uno/TypeClass;"); + "com/sun/star/uno/TypeClass"_ostr, "INTERFACE"_ostr, + "Lcom/sun/star/uno/TypeClass;"_ostr); // stack: value type type "..." INTERFACE code->instrInvokespecial( - "com/sun/star/uno/Type", "<init>", - "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"); + "com/sun/star/uno/Type"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Lcom/sun/star/uno/TypeClass;)V"_ostr); // stack: value type code->instrSwap(); // stack: type value code->instrInvokestatic( - "com/sun/star/uno/UnoRuntime", "queryInterface", - "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)Ljava/lang/Object;"); + "com/sun/star/uno/UnoRuntime"_ostr, "queryInterface"_ostr, + "(Lcom/sun/star/uno/Type;Ljava/lang/Object;)Ljava/lang/Object;"_ostr); // stack: instance code->instrDup(); // stack: instance instance @@ -2414,7 +2418,7 @@ void handleSingleton( code->branchHere(branch3); code->instrPop(); // stack: - - code->instrNew("com/sun/star/uno/DeploymentException"); + code->instrNew("com/sun/star/uno/DeploymentException"_ostr); // stack: ex code->instrDup(); // stack: ex ex @@ -2425,15 +2429,15 @@ void handleSingleton( code->loadLocalReference(0); // stack: ex ex "..." context code->instrInvokespecial( - "com/sun/star/uno/DeploymentException", "<init>", - "(Ljava/lang/String;Ljava/lang/Object;)V"); + "com/sun/star/uno/DeploymentException"_ostr, "<init>"_ostr, + "(Ljava/lang/String;Ljava/lang/Object;)V"_ostr); // stack: ex code->instrAthrow(); code->setMaxStackAndLocals(5, 1); cf->addMethod( static_cast< ClassFile::AccessFlags >( ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC), - "get", desc.getDescriptor(), code.get(), std::vector< OString >(), + "get"_ostr, desc.getDescriptor(), code.get(), std::vector< OString >(), desc.getSignature()); writeClassFile(options, className, *cf); } @@ -2525,7 +2529,7 @@ void produce( throw CannotDumpException( "unexpected entity \"" + name + "\" in call to produce"); } - if (!options.isValid("-nD")) { + if (!options.isValid("-nD"_ostr)) { for (const OUString& d : deps) { produce(d, manager, generated, options); } |