public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Liberally generate global (::) qualified names. Date: Fri, 09 May 2008 16:49:00 -0000 [thread overview] Message-ID: <20080509164924.9816.qmail@sourceware.org> (raw) The branch, master has been updated via 3b8311fe61d3f7cf617fbbfa8467402c590e6834 (commit) from dcceec6534cd5e28eca8dccc095f4c44113d9160 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3b8311fe61d3f7cf617fbbfa8467402c590e6834 Author: Andrew Cagney <cagney@redhat.com> Date: Fri May 9 12:48:07 2008 -0400 Liberally generate global (::) qualified names. frysk-sys/frysk/jnixx/ChangeLog 2008-05-09 Andrew Cagney <cagney@redhat.com> * Printer.java (printCxxType(Class)): Delete. (printCxxName(Class,boolean)): New. (printQualifiedCxxName(Class)): Use. (printGlobalCxxName(Class)): Use. (printGlobalCxxName(Member)): New. * PrintHxxDefinitions.java: Update. * PrintCxxDefinitions.java: Update. * PrintDeclarations.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/jnixx/ChangeLog | 9 ++ frysk-sys/frysk/jnixx/PrintCxxDefinitions.java | 6 +- frysk-sys/frysk/jnixx/PrintDeclarations.java | 8 +- frysk-sys/frysk/jnixx/PrintHxxDefinitions.java | 8 +- frysk-sys/frysk/jnixx/Printer.java | 114 +++++++++++++----------- 5 files changed, 81 insertions(+), 64 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/frysk/jnixx/ChangeLog b/frysk-sys/frysk/jnixx/ChangeLog index c527462..42d2714 100644 --- a/frysk-sys/frysk/jnixx/ChangeLog +++ b/frysk-sys/frysk/jnixx/ChangeLog @@ -1,5 +1,14 @@ 2008-05-09 Andrew Cagney <cagney@redhat.com> + * Printer.java (printCxxType(Class)): Delete. + (printCxxName(Class,boolean)): New. + (printQualifiedCxxName(Class)): Use. + (printGlobalCxxName(Class)): Use. + (printGlobalCxxName(Member)): New. + * PrintHxxDefinitions.java: Update. + * PrintCxxDefinitions.java: Update. + * PrintDeclarations.java: Update. + * Main.java (treatAsNative(Method)): New. (treatAsPrivate(Member)): New. * PrintDeclarations.java: Use. diff --git a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java index 1e8be54..9bd1efe 100644 --- a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java +++ b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java @@ -79,13 +79,13 @@ class PrintCxxDefinitions extends ClassWalker { p.println("::jnixx::env _env = ::jnixx::env(_jni);"); Class returnType = method.getReturnType(); if (returnType != Void.TYPE) { - p.printCxxType(returnType); + p.printGlobalCxxName(returnType); p.print(" ret = "); } if (isStatic) { - p.printQualifiedCxxName(method); + p.printGlobalCxxName(method); } else { - p.printCxxType(method.getDeclaringClass()); + p.printGlobalCxxName(method.getDeclaringClass()); p.print("(object)."); p.print(method.getName()); } diff --git a/frysk-sys/frysk/jnixx/PrintDeclarations.java b/frysk-sys/frysk/jnixx/PrintDeclarations.java index 32c9b34..6aa507f 100644 --- a/frysk-sys/frysk/jnixx/PrintDeclarations.java +++ b/frysk-sys/frysk/jnixx/PrintDeclarations.java @@ -59,7 +59,7 @@ class PrintDeclarations extends ClassWalker { } p.print("inline "); if (get) { - p.printCxxType(field.getType()); + p.printGlobalCxxName(field.getType()); p.print(" Get"); } else { p.print("void Set"); @@ -70,7 +70,7 @@ class PrintDeclarations extends ClassWalker { p.print("(::jnixx::env"); if (!get) { p.print(", "); - p.printCxxType(field.getType()); + p.printGlobalCxxName(field.getType()); } p.println(");"); } @@ -85,7 +85,7 @@ class PrintDeclarations extends ClassWalker { public void acceptConstructor(Constructor constructor) { p.printlnModifiers(constructor); p.print("static inline "); - p.printCxxType(constructor.getDeclaringClass()); + p.printGlobalCxxName(constructor.getDeclaringClass()); p.print(" New("); p.printFormalCxxParameters(constructor, false); p.println(");"); @@ -108,7 +108,7 @@ class PrintDeclarations extends ClassWalker { if (!Main.treatAsNative(method)) { p.print("inline "); } - p.printCxxType(method.getReturnType()); + p.printGlobalCxxName(method.getReturnType()); p.print(" "); p.printName(method); p.print("("); diff --git a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java index 8ae9bea..2c07a7f 100644 --- a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java +++ b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java @@ -56,7 +56,7 @@ class PrintHxxDefinitions extends ClassWalker { Class type = field.getType(); p.println(); if (get) { - p.printCxxType(type); + p.printGlobalCxxName(type); p.println(); } else { p.println("void"); @@ -74,7 +74,7 @@ class PrintHxxDefinitions extends ClassWalker { p.print("(::jnixx::env _env"); if (!get) { p.print(", "); - p.printCxxType(type); + p.printGlobalCxxName(type); p.print(" p0"); } p.print(")"); @@ -127,7 +127,7 @@ class PrintHxxDefinitions extends ClassWalker { boolean isStatic = Modifier.isStatic(method.getModifiers()); Class returnType = method.getReturnType(); p.println(); - p.printCxxType(returnType); + p.printGlobalCxxName(returnType); p.println(); p.printQualifiedCxxName(method); p.print("("); @@ -185,7 +185,7 @@ class PrintHxxDefinitions extends ClassWalker { } void acceptConstructor(Constructor constructor) { p.println(); - p.printCxxType(constructor.getDeclaringClass()); + p.printGlobalCxxName(constructor.getDeclaringClass()); p.println(); p.printQualifiedCxxName(constructor); p.print("("); diff --git a/frysk-sys/frysk/jnixx/Printer.java b/frysk-sys/frysk/jnixx/Printer.java index e5a472f..b75968a 100644 --- a/frysk-sys/frysk/jnixx/Printer.java +++ b/frysk-sys/frysk/jnixx/Printer.java @@ -151,32 +151,51 @@ class Printer { } /** - * Print the class's fully qualified C++ name; that is "." - * replaced by "::". + * Given a class describing a type (class of basic), print the JNI + * equivalent name. */ - void printGlobalCxxName(Class klass) { + private void printCxxName(Class klass, boolean global) { if (klass == null) { - print("::jnixx::interface"); - } else if (klass.isArray()) { - throw new RuntimeException("array class: " + klass); + if (global) { + print("::"); + } + print("jnixx::interface"); } else if (klass.isPrimitive()) { - print("j"); - print(klass.getName()); + if (klass == Void.TYPE) { + print("void"); + } else if (klass == Boolean.TYPE) { + print("bool"); + } else { + print("j"); + print(klass.getName()); + } + } else if (klass.isArray()) { + Class componentType = klass.getComponentType(); + if (componentType.isPrimitive()) { + print("j"); + print(componentType.getName()); + print("Array"); + } else { + printCxxName(klass.getComponentType(), global); + print("Array"); + } } else { - print("::"); + if (global) { + print("::"); + } print(klass.getName().replaceAll("\\.", "::")); } } + + /** + * Print the class's fully qualified C++ name; that is "." + * replaced by "::". + */ + void printGlobalCxxName(Class klass) { + printCxxName(klass, true); + } void printQualifiedCxxName(Class klass) { - if (klass.isPrimitive()) { - print("j"); - print(klass.getName()); - } else if (klass.isArray()) { - printQualifiedCxxName(klass.getComponentType()); - print("Array"); - } else { - print(klass.getName().replaceAll("\\.", "::")); - } + printCxxName(klass, false); } /** @@ -197,21 +216,37 @@ class Printer { * Print the method's fully qualified C++ name; that is "." * replaced by "::". */ - Printer printQualifiedCxxName(Member member) { + void printQualifiedCxxName(Member member) { printQualifiedCxxName(member.getDeclaringClass()); print("::"); printName(member); - return this; + } + /** + * Print the method's fully qualified C++ name; that is "." + * replaced by "::". + */ + void printGlobalCxxName(Member member) { + printGlobalCxxName(member.getDeclaringClass()); + print("::"); + printName(member); } /** * Print the constructor's fully qualified C++ name; that is "." * replaced by "::". */ - Printer printQualifiedCxxName(Constructor constructor) { + void printQualifiedCxxName(Constructor constructor) { printQualifiedCxxName(constructor.getDeclaringClass()); print("::"); print("New"); - return this; + } + /** + * Print the constructor's fully qualified C++ name; that is "." + * replaced by "::". + */ + void printGlobalCxxName(Constructor constructor) { + printGlobalCxxName(constructor.getDeclaringClass()); + print("::"); + print("New"); } /** @@ -376,33 +411,6 @@ class Printer { } /** - * Given a class describing a type (class of basic), print the JNI - * equivalent name. - */ - void printCxxType(Class klass) { - if (klass.isPrimitive()) { - if (klass == Void.TYPE) { - print("void"); - } else if (klass == Boolean.TYPE) { - print("bool"); - } else { - print("j"); - print(klass.getName()); - } - } else if (klass.isArray()) { - if (klass.getComponentType() == Boolean.TYPE) { - print("jbooleanArray"); - } else { - printCxxType(klass.getComponentType()); - print("Array"); - } - } else { - print("::"); - print(klass.getName().replaceAll("\\.", "::")); - } - } - - /** * Given an array of types, print them as a list (presumably this * is a list of parameters). */ @@ -414,7 +422,7 @@ class Printer { print(" _env"); for (int i = 0; i < params.length; i++) { print(", "); - printCxxType(params[i]); + printGlobalCxxName(params[i]); if (printArgs) print(" p" + i); } @@ -457,7 +465,7 @@ class Printer { && param.getComponentType().isPrimitive()) { print("p" + i); } else { - printCxxType(param); + printGlobalCxxName(param); print("(p" + i + ")"); } } @@ -568,11 +576,11 @@ class Printer { } else if (returnType.isArray() && returnType.getComponentType().isPrimitive()) { print("("); - printCxxType(returnType); + printGlobalCxxName(returnType); print(")"); print(variable); } else { - printCxxType(returnType); + printGlobalCxxName(returnType); print("("); print(variable); print(")"); hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-05-09 16:49 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080509164924.9816.qmail@sourceware.org \ --to=cagney@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).