public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: Factor out a common print-return-code method.
@ 2008-05-08  3:53 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2008-05-08  3:53 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  476c341a9e7d666f1e0724392ca8c2d0c00b895f (commit)
      from  2a7c99edb7f6fde358b17281aa82837b0a1b4229 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 476c341a9e7d666f1e0724392ca8c2d0c00b895f
Author: Andrew Cagney <cagney@redhat.com>
Date:   Wed May 7 23:51:55 2008 -0400

    Factor out a common print-return-code method.
    
    frysk-sys/frysk/jnixx/ChangeLog
    2008-05-07  Andrew Cagney  <cagney@redhat.com>
    
    	* Printer.java (printReturn): New.
    	* PrintHxxDefinitions.java: Use.

-----------------------------------------------------------------------

Summary of changes:
 frysk-sys/frysk/jnixx/ChangeLog                |    3 +++
 frysk-sys/frysk/jnixx/PrintHxxDefinitions.java |   24 +++++-------------------
 frysk-sys/frysk/jnixx/Printer.java             |   21 +++++++++++++++++++++
 3 files changed, 29 insertions(+), 19 deletions(-)

First 500 lines of diff:
diff --git a/frysk-sys/frysk/jnixx/ChangeLog b/frysk-sys/frysk/jnixx/ChangeLog
index 48251d9..66077cd 100644
--- a/frysk-sys/frysk/jnixx/ChangeLog
+++ b/frysk-sys/frysk/jnixx/ChangeLog
@@ -1,5 +1,8 @@
 2008-05-07  Andrew Cagney  <cagney@redhat.com>
 
+	* Printer.java (printReturn): New.
+	* PrintHxxDefinitions.java: Use.
+
 	* jni/Native.cxx: Include jni.hxx; fully qualify jnixx::env.
 	* print.cxx: Ditto.
 	* print.hxx: Ditto.
diff --git a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
index a1d4607..7e81aeb 100644
--- a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
+++ b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
@@ -117,15 +117,7 @@ class PrintHxxDefinitions extends ClassWalker {
 	    }
 	    p.println(");");
 	    if (get) {
-		p.print("return ");
-		if (type.isPrimitive()) {
-		    p.print("ret");
-		} else if (type.getName().startsWith("java.")) {
-		    p.print("ret");
-		} else {
-		    p.printCxxType(type);
-		    p.print("(ret)");
-		}
+		p.printReturn(isStatic, type, "ret");
 		p.println(";");
 	    }
 	}
@@ -177,13 +169,7 @@ class PrintHxxDefinitions extends ClassWalker {
 	    p.printActualJniParameters(method);
 	    p.println(");");
 	    if (returnType != Void.TYPE) {
-		p.print("return ");
-		if (returnType.isPrimitive()) {
-		    p.print("ret;");
-		} else {
-		    p.printCxxType(returnType);
-		    p.print("(ret)");
-		}
+		p.printReturn(isStatic, returnType, "ret");
 		p.println(";");
 	    }
 	}
@@ -224,9 +210,9 @@ class PrintHxxDefinitions extends ClassWalker {
 		    while (p.dent(1, "if (object == NULL) {", "}")) {
 			p.println("throw ::jnixx::exception();");
 		    }
-		    p.print("return ");
-		    p.printCxxType(constructor.getDeclaringClass());
-		    p.println("(object);");
+		    p.printReturn(true, constructor.getDeclaringClass(),
+				  "object");
+		    p.println(";");
 		}
 	    }
 
diff --git a/frysk-sys/frysk/jnixx/Printer.java b/frysk-sys/frysk/jnixx/Printer.java
index e18ae2a..7c8f1b8 100644
--- a/frysk-sys/frysk/jnixx/Printer.java
+++ b/frysk-sys/frysk/jnixx/Printer.java
@@ -551,6 +551,27 @@ class Printer {
     }
 
     /**
+     * Print a return statement, possibly using casts.
+     */
+    void printReturn(boolean isStatic, Class returnType, String variable) {
+	print("return ");
+	if (returnType.isPrimitive()) {
+	    print(variable);
+	} else if (returnType.isArray()
+		   && returnType.getComponentType().isPrimitive()) {
+	    print("(");
+	    printCxxType(returnType);
+	    print(")");
+	    print(variable);
+	} else {
+	    printCxxType(returnType);
+	    print("(");
+	    print(variable);
+	    print(")");
+	}
+    }
+
+    /**
      * Flush the output.
      */
     void flush() {


hooks/post-receive
--
frysk system monitor/debugger


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-05-08  3:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-08  3:53 [SCM] master: Factor out a common print-return-code method cagney

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).