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: link
Be 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).