public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Factor out a common print-return-code method.
Date: Thu, 08 May 2008 03:53:00 -0000	[thread overview]
Message-ID: <20080508035327.14947.qmail@sourceware.org> (raw)

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


                 reply	other threads:[~2008-05-08  3:53 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=20080508035327.14947.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).