diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-09-17 16:56:19 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-09-17 16:59:53 +0200 |
commit | 543158edba6678d3d76eee983a9d4edd2a422fee (patch) | |
tree | 458133435b06afd5b50379c058a0f886fe9e82c1 /codemaker/source/javamaker | |
parent | revised MacOSX mimetype icons (diff) | |
download | core-543158edba6678d3d76eee983a9d4edd2a422fee.tar.gz core-543158edba6678d3d76eee983a9d4edd2a422fee.zip |
Require XComponentContext.getServiceManager to throw instead of returning null
This is such a fatal error that there is probably no point in trying to handle
it, so allow to simplify client code by removing the requirement to check for a
null return value.
Simplified some client code accordingly (modules configmgr and ure, and the code
generated by cppumaker and javamaker).
Change-Id: I51c0b270ec73409374f7439a47ee061407a46e31
Diffstat (limited to 'codemaker/source/javamaker')
-rw-r--r-- | codemaker/source/javamaker/javatype.cxx | 71 |
1 files changed, 6 insertions, 65 deletions
diff --git a/codemaker/source/javamaker/javatype.cxx b/codemaker/source/javamaker/javatype.cxx index 113354f22fa4..b762823ed311 100644 --- a/codemaker/source/javamaker/javatype.cxx +++ b/codemaker/source/javamaker/javatype.cxx @@ -2634,12 +2634,14 @@ void addConstructor( SAL_WNODEPRECATED_DECLARATIONS_POP code->loadLocalReference(0); // stack: context - code->instrInvokestatic( - className, rtl::OString(RTL_CONSTASCII_STRINGPARAM("$getFactory")), + code->instrInvokeinterface( + rtl::OString( + RTL_CONSTASCII_STRINGPARAM("com/sun/star/uno/XComponentContext")), + rtl::OString(RTL_CONSTASCII_STRINGPARAM("getServiceManager")), rtl::OString( RTL_CONSTASCII_STRINGPARAM( - "(Lcom/sun/star/uno/XComponentContext;)" - "Lcom/sun/star/lang/XMultiComponentFactory;"))); + "()Lcom/sun/star/lang/XMultiComponentFactory;")), + 1); // stack: factory code->loadStringConstant(unoName); // stack: factory serviceName @@ -2905,67 +2907,6 @@ void handleService( manager, realJavaBaseName, unoName, className, reader, i, name, base, defaultCtor, dependencies, cf.get()); } - // Synthetic getFactory method: - { - SAL_WNODEPRECATED_DECLARATIONS_PUSH - std::auto_ptr< ClassFile::Code > code(cf->newCode()); - SAL_WNODEPRECATED_DECLARATIONS_POP - code->loadLocalReference(0); - // stack: context - code->instrInvokeinterface( - rtl::OString( - RTL_CONSTASCII_STRINGPARAM( - "com/sun/star/uno/XComponentContext")), - rtl::OString(RTL_CONSTASCII_STRINGPARAM("getServiceManager")), - rtl::OString( - RTL_CONSTASCII_STRINGPARAM( - "()Lcom/sun/star/lang/XMultiComponentFactory;")), - 1); - // stack: factory - code->instrDup(); - // stack: factory factory - ClassFile::Code::Branch branch = code->instrIfnull(); - // stack: factory - code->instrAreturn(); - code->branchHere(branch); - code->instrPop(); - // stack: - - code->instrNew( - rtl::OString( - RTL_CONSTASCII_STRINGPARAM( - "com/sun/star/uno/DeploymentException"))); - // stack: ex - code->instrDup(); - // stack: ex ex - code->loadStringConstant( - rtl::OString( - RTL_CONSTASCII_STRINGPARAM( - "component context fails to supply service manager"))); - // stack: ex ex "..." - code->loadLocalReference(0); - // stack: ex ex "..." context - code->instrInvokespecial( - rtl::OString( - RTL_CONSTASCII_STRINGPARAM( - "com/sun/star/uno/DeploymentException")), - rtl::OString(RTL_CONSTASCII_STRINGPARAM("<init>")), - rtl::OString( - RTL_CONSTASCII_STRINGPARAM( - "(Ljava/lang/String;Ljava/lang/Object;)V"))); - // stack: ex - code->instrAthrow(); - code->setMaxStackAndLocals(4, 1); - cf->addMethod( - static_cast< ClassFile::AccessFlags >( - ClassFile::ACC_PRIVATE | ClassFile::ACC_STATIC - | ClassFile::ACC_SYNTHETIC), - rtl::OString(RTL_CONSTASCII_STRINGPARAM("$getFactory")), - rtl::OString( - RTL_CONSTASCII_STRINGPARAM( - "(Lcom/sun/star/uno/XComponentContext;)" - "Lcom/sun/star/lang/XMultiComponentFactory;")), - code.get(), std::vector< rtl::OString >(), rtl::OString()); - } // Synthetic castInstance method: { SAL_WNODEPRECATED_DECLARATIONS_PUSH |