[Libreoffice-commits] core.git: codemaker/source
Stephan Bergmann
sbergman at redhat.com
Wed Dec 10 04:35:02 PST 2014
codemaker/source/javamaker/javatype.cxx | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
New commits:
commit 662e3299c578e2bff8a1cb9884e6266353ea1ebe
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Wed Dec 10 13:34:04 2014 +0100
Fix generation of com.sun.star.uno.[Runtime]Exception classes
Change-Id: If9bd4d906906e0e6cd7c5bb61f8a67a163218395
diff --git a/codemaker/source/javamaker/javatype.cxx b/codemaker/source/javamaker/javatype.cxx
index 4dc7f5c..f60b163 100644
--- a/codemaker/source/javamaker/javatype.cxx
+++ b/codemaker/source/javamaker/javatype.cxx
@@ -1825,18 +1825,22 @@ void handleExceptionType(
MethodDescriptor desc2(manager, dependencies, "void", 0, 0);
code.reset(cf->newCode());
code->loadLocalReference(0);
- sal_uInt16 index3 = 1;
- code->loadLocalReference(index3++);
- code->loadLocalReference(index3++);
+ sal_uInt16 index3 = 3;
// Note that we hack in the java.lang.Throwable parameter further down,
// because MethodDescriptor does not know how to handle it.
desc2.addParameter("string", false, true, 0);
- if (!(baseException || baseRuntimeException)) {
+ if (baseException || baseRuntimeException) {
+ code->loadLocalReference(2);
+ code->loadLocalReference(1);
+ code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/String;Ljava/lang/Throwable;)V");
+ } else {
+ code->loadLocalReference(1);
+ code->loadLocalReference(2);
addExceptionBaseArguments(
manager, dependencies, &desc2, code.get(), entity->getDirectBase(),
&index3);
+ code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/Throwable;" + desc2.getDescriptor().copy(1));
}
- code->instrInvokespecial(superClass, "<init>", "(Ljava/lang/Throwable;" + desc2.getDescriptor().copy(1));
sal_uInt16 maxSize2 = index3;
if (baseRuntimeException) {
maxSize2 = std::max(
More information about the Libreoffice-commits
mailing list