public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Require ENV parameter.
Date: Tue, 13 May 2008 18:10:00 -0000	[thread overview]
Message-ID: <20080513181010.27854.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  fe521dbf9790be8d154c513489f4727e9c2188cd (commit)
      from  7ff017df51e2660d44997efec645e1e27e310054 (commit)

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

- Log -----------------------------------------------------------------
commit fe521dbf9790be8d154c513489f4727e9c2188cd
Author: Andrew Cagney <cagney@redhat.com>
Date:   Tue May 13 14:06:54 2008 -0400

    Require ENV parameter.
    
    frysk-sys/frysk/jnixx/ChangeLog
    2008-05-13  Andrew Cagney  <cagney@redhat.com>
    
    	* PrintDeclarations.java: Do not generate non-ENV wrappers.
    	Delete Cast.  Add ENV parameter to constructor.
    	* PrintHxxDefinitions.java: Update.
    	* PrintCxxDefinitions.java: Update.
    	* JniBindings.java: Update.
    	* Printer.java: Update.
    	* chars.cxx (jnixx::array): Update.
    
    frysk-sys/frysk/sys/proc/ChangeLog
    2008-05-13  Andrew Cagney  <cagney@redhat.com>
    
    	* jni/ProcBuilder.cxx (ProcBuilder::construct): Pass env to build().

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

Summary of changes:
 frysk-sys/frysk/jnixx/ChangeLog                |    8 +++
 frysk-sys/frysk/jnixx/JniBindings.java         |   18 +++----
 frysk-sys/frysk/jnixx/PrintCxxDefinitions.java |    3 +-
 frysk-sys/frysk/jnixx/PrintDeclarations.java   |   67 +++++-------------------
 frysk-sys/frysk/jnixx/PrintHxxDefinitions.java |   54 -------------------
 frysk-sys/frysk/jnixx/Printer.java             |    6 +--
 frysk-sys/frysk/jnixx/chars.cxx                |    2 +-
 frysk-sys/frysk/sys/proc/ChangeLog             |    2 +
 frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx   |    2 +-
 9 files changed, 36 insertions(+), 126 deletions(-)

First 500 lines of diff:
diff --git a/frysk-sys/frysk/jnixx/ChangeLog b/frysk-sys/frysk/jnixx/ChangeLog
index 2ad1949..61f470a 100644
--- a/frysk-sys/frysk/jnixx/ChangeLog
+++ b/frysk-sys/frysk/jnixx/ChangeLog
@@ -1,5 +1,13 @@
 2008-05-13  Andrew Cagney  <cagney@redhat.com>
 
+	* PrintDeclarations.java: Do not generate non-ENV wrappers.
+	Delete Cast.  Add ENV parameter to constructor.
+	* PrintHxxDefinitions.java: Update.
+	* PrintCxxDefinitions.java: Update.
+	* JniBindings.java: Update.
+	* Printer.java: Update.
+	* chars.cxx (jnixx::array): Update.
+
 	* logging.hxx: Move from frysk/rsl/jni/Log.hxx.
 	* logging.cxx: Ditto for Log.cxx.
 
diff --git a/frysk-sys/frysk/jnixx/JniBindings.java b/frysk-sys/frysk/jnixx/JniBindings.java
index 9605d86..7464cb7 100644
--- a/frysk-sys/frysk/jnixx/JniBindings.java
+++ b/frysk-sys/frysk/jnixx/JniBindings.java
@@ -229,7 +229,7 @@ class JniBindings {
 		 "const char*", "utf",
 	     },
 	     new Object[] {
-		 "return String(env.NewStringUTF(utf));",
+		 "return String(env, env.NewStringUTF(utf));",
 	     })
 	// GetStringUTFLength
 	.put(String.class, false,
@@ -299,7 +299,7 @@ class JniBindings {
 			 "jsize", "length",
 		     },
 		     new Object[] {
-			 "return " + type + "Array(env.New" + Type + "Array(length));",
+			 "return " + type + "Array(env, env.New" + Type + "Array(length));",
 		     })
 		.put(types[i], false,
 		     "const j" + type + "*", "GetElements",
@@ -364,24 +364,22 @@ class JniBindings {
 	while (p.dent(0, "namespace jnixx {", "}")) {
 	    while (p.dent(1, "template <typename component> class array : public ::java::lang::Object {", "};")) {
 		printCodes(p, 2, new Object[] {
-			"protected:",
-			"array(jobject _object) : ::java::lang::Object(_object)", new Object[] {
-			},
 			"public:",
-			"static array<component> Cast(jobject object)", new Object[] {
-			    "return array<component>(object);",
+			"array(::jnixx::env env, jobject _object) : ::java::lang::Object(env, _object)", new Object[] {
+			},
+			"array() : ::java::lang::Object()", new Object[] {
 			},
 			"jsize GetLength(::jnixx::env env)", new Object[] {
 			    "return env.GetArrayLength((jarray)_object);",
 			},
 			"static array<component> New(::jnixx::env env, jsize length)", new Object[] {
-			    "return env.NewObjectArray(length, component::_class_(env), NULL);",
+			    "return array<component>(env, env.NewObjectArray(length, component::_class_(env), NULL));",
 			},
 			"static array<component> New(::jnixx::env env, jsize length, component init)", new Object[] {
-			    "return env.NewObjectArray(length, component::_class_(env), init._object);",
+			    "return array<component>(env, env.NewObjectArray(length, component::_class_(env), init._object));",
 			},
 			"component GetElement(::jnixx::env env, jsize index)", new Object[] {
-			    "return component::Cast(env.GetObjectArrayElement((jobjectArray)_object, index));",
+			    "return component(env, env.GetObjectArrayElement((jobjectArray)_object, index));",
 			},
 			"void SetElement(::jnixx::env env, jsize index, component object)", new Object[] {
 			    "env.SetObjectArrayElement((jobjectArray)_object, index, object._object);",
diff --git a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
index caef0bc..05f0b6c 100644
--- a/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
+++ b/frysk-sys/frysk/jnixx/PrintCxxDefinitions.java
@@ -86,8 +86,7 @@ class PrintCxxDefinitions extends ClassWalker {
 			    p.printGlobalCxxName(method);
 			} else {
 			    p.printGlobalCxxName(method.getDeclaringClass());
-			    p.print("::Cast");
-			    p.print("(object).");
+			    p.print("(_env, object).");
 			    p.print(method.getName());
 			}
 			p.print("(");
diff --git a/frysk-sys/frysk/jnixx/PrintDeclarations.java b/frysk-sys/frysk/jnixx/PrintDeclarations.java
index b9f9ab8..5219fb5 100644
--- a/frysk-sys/frysk/jnixx/PrintDeclarations.java
+++ b/frysk-sys/frysk/jnixx/PrintDeclarations.java
@@ -51,48 +51,9 @@ class PrintDeclarations extends ClassWalker {
 	this.p = p;
     }
 
-    private void printWrapperDeclaration(boolean isStatic, Class returnType,
-					 String name, Class[] params) {
-	if (isStatic) {
-	    p.print("static ");
-	}	
-	p.print("inline ");
-	p.printGlobalCxxName(returnType);
-	p.print(" ");
-	p.print(name);
-	p.print("(");
-	for (int i = 0; i < params.length; i++) {
-	    if (i > 0) {
-		p.print(", ");
-	    }
-	    p.printGlobalCxxName(params[i]);
-	}
-	p.println(");");
-    }
-    private void printWrapperDeclaration(Method method) {
-	printWrapperDeclaration(Modifier.isStatic(method.getModifiers()),
-				method.getReturnType(),
-				p.name(method),
-				method.getParameterTypes());
-    }
-    private void printWrapperDeclaration(Constructor constructor) {
-	printWrapperDeclaration(true,
-				constructor.getDeclaringClass(),
-				"New",
-				constructor.getParameterTypes());
-    }
-    private void printWrapperDeclaration(Field field, boolean get) {
-	boolean isStatic = Modifier.isStatic(field.getModifiers());
-	printWrapperDeclaration(isStatic,
-				get ? field.getType() : Void.TYPE,
-				p.name(field, get),
-				get ? new Class[0] : new Class[] { field.getType() });
-    }
-
     private void printCxxFieldAccessorDeclaration(Field field,
 						  boolean get) {
 	p.printlnModifiers(field);
-	printWrapperDeclaration(field, get);
 	if (Modifier.isStatic(field.getModifiers())) {
 	    p.print("static ");
 	}
@@ -119,7 +80,6 @@ class PrintDeclarations extends ClassWalker {
 	    }
 	    public void acceptConstructor(Constructor constructor) {
 		p.printlnModifiers(constructor);
-		printWrapperDeclaration(constructor);
 		p.print("static inline ");
 		p.printGlobalCxxName(constructor.getDeclaringClass());
 		p.print(" New(");
@@ -138,7 +98,6 @@ class PrintDeclarations extends ClassWalker {
 	    }
 	    public void acceptMethod(Method method) {
 		p.printlnModifiers(method);
-		printWrapperDeclaration(method);
 		if (Modifier.isStatic(method.getModifiers())) {
 		    p.print("static ");
 		}
@@ -158,33 +117,33 @@ class PrintDeclarations extends ClassWalker {
 	if (parent == null) {
 	    // A root object.
 	    p.println("public: jobject _object;");
-	    p.print("protected: ");
+	    p.print("public: ");
 	    p.printUnqualifiedCxxName(klass);
-	    p.print("(jobject _object)");
+	    p.print("(::jnixx::env env, jobject _object)");
 	    while (p.dent(1, "{", "}")) {
 		p.println("this->_object = _object;");
 	    }
+	    p.print("public: ");
+	    p.printUnqualifiedCxxName(klass);
+	    p.print("()");
+	    while (p.dent(1, "{", "}")) {
+		p.println("this->_object = NULL;");
+	    }
 	} else {
 	    // Constructor.
-	    p.print("protected: ");
+	    p.print("public: ");
 	    p.printUnqualifiedCxxName(klass);
-	    p.print("(jobject _object) : ");
+	    p.print("(::jnixx::env env, jobject _object) : ");
 	    p.printGlobalCxxName(parent);
-	    p.println("(_object) { }");
+	    p.println("(env, _object) { }");
 	    // Empty constructor.
 	    p.print("public: ");
 	    p.printUnqualifiedCxxName(klass);
 	    p.print("() : ");
 	    p.printGlobalCxxName(parent);
-	    p.println("(NULL) { }");
+	    p.println("() { }");
 	}
-	// Explicit cast operator.
-	p.print("public: static ");
-	p.printUnqualifiedCxxName(klass);
-	p.print(" Cast(jobject object) { return ");
-	p.printUnqualifiedCxxName(klass);
-	p.println("(object); }");
-	    // Static get-class method - a class knows its own class.
+	// Static get-class method - a class knows its own class.
 	p.println("private: static jclass _class;");
 	p.println("public: static inline jclass _class_(::jnixx::env _env);");
 	JniBindings.printDeclarations(p, klass);
diff --git a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
index 7655cfd..fd6418b 100644
--- a/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
+++ b/frysk-sys/frysk/jnixx/PrintHxxDefinitions.java
@@ -51,59 +51,7 @@ class PrintHxxDefinitions extends ClassWalker {
 	this.p = p;
     }
 
-    private void printWrapperDefinition(Class klass, boolean isStatic,
-					Class returnType,
-					String name, Class[] params) {
-	p.printGlobalCxxName(returnType);
-	p.println();
-	p.printQualifiedCxxName(klass);
-	p.print("::");
-	p.print(name);
-	p.print("(");
-	for (int i = 0; i < params.length; i++) {
-	    if (i > 0) {
-		p.print(", ");
-	    }
-	    p.printGlobalCxxName(params[i]);
-	    p.print(" p" + i);
-	}
-	p.print(")");
-	while (p.dent(0, "{", "}")) {
-	    if (returnType != Void.TYPE) {
-		p.print("return ");
-	    }
-	    p.print(name);
-	    p.print("(_env_()");
-	    for (int i = 0; i < params.length; i++) {
-		p.print(",  p" + i);
-	    }
-	    p.println(");");
-	}
-    }
-    private void printWrapperDefinition(Method method) {
-	printWrapperDefinition(method.getDeclaringClass(),
-			       Modifier.isStatic(method.getModifiers()),
-			       method.getReturnType(),
-			       p.name(method),
-			       method.getParameterTypes());
-    }
-    private void printWrapperDefinition(Constructor constructor) {
-	printWrapperDefinition(constructor.getDeclaringClass(),
-			       true,
-			       constructor.getDeclaringClass(),
-			       "New",
-			       constructor.getParameterTypes());
-    }
-    private void printWrapperDefinition(Field field, boolean get) {
-	printWrapperDefinition(field.getDeclaringClass(),
-			       Modifier.isStatic(field.getModifiers()),
-			       get ? field.getType() : Void.TYPE,
-			       p.name(field, get),
-			       get ? new Class[0] : new Class[] { field.getType() });
-    }
-
     private void printCxxFieldAccessorDefinition(Field field, boolean get) {
-	printWrapperDefinition(field, get);
 	boolean isStatic = Modifier.isStatic(field.getModifiers());
 	Class type = field.getType();
 	p.println();
@@ -169,7 +117,6 @@ class PrintHxxDefinitions extends ClassWalker {
     }
 
     private void printCxxMethodDefinition(Method method) {
-	printWrapperDefinition(method);
 	boolean isStatic = Modifier.isStatic(method.getModifiers());
 	Class returnType = method.getReturnType();
 	p.println();
@@ -229,7 +176,6 @@ class PrintHxxDefinitions extends ClassWalker {
 	    }
 	    void acceptConstructor(Constructor constructor) {
 		p.println();
-		printWrapperDefinition(constructor);
 		p.printGlobalCxxName(constructor.getDeclaringClass());
 		p.println();
 		p.printQualifiedCxxName(constructor);
diff --git a/frysk-sys/frysk/jnixx/Printer.java b/frysk-sys/frysk/jnixx/Printer.java
index 8bd673e..3728d98 100644
--- a/frysk-sys/frysk/jnixx/Printer.java
+++ b/frysk-sys/frysk/jnixx/Printer.java
@@ -503,8 +503,7 @@ class Printer {
 		print("p" + i);
 	    } else {
 		printGlobalCxxName(param);
-		print("::Cast");
-		print("(p" + i + ")");
+		print("(_env, p" + i + ")");
 	    }
 	}
     }
@@ -609,8 +608,7 @@ class Printer {
 	    print(variable);
 	} else {
 	    printGlobalCxxName(returnType);
-	    print("::Cast");
-	    print("(");
+	    print("(_env, ");
 	    print(variable);
 	    print(")");
 	}
diff --git a/frysk-sys/frysk/jnixx/chars.cxx b/frysk-sys/frysk/jnixx/chars.cxx
index a59107d..56caf4d 100644
--- a/frysk-sys/frysk/jnixx/chars.cxx
+++ b/frysk-sys/frysk/jnixx/chars.cxx
@@ -83,7 +83,7 @@ chars2strings(::jnixx::env env, char** argv) {
     length++;
   }
   ::jnixx::array<String> strings
-      = ::jnixx::array<String>::New(length);
+      = ::jnixx::array<String>::New(env, length);
   for (int i = 0; i < length; i++) {
     String string = String::NewStringUTF(env, argv[i]);
     strings.SetElement(env, i, string);
diff --git a/frysk-sys/frysk/sys/proc/ChangeLog b/frysk-sys/frysk/sys/proc/ChangeLog
index 2e2c1e2..7544934 100644
--- a/frysk-sys/frysk/sys/proc/ChangeLog
+++ b/frysk-sys/frysk/sys/proc/ChangeLog
@@ -1,5 +1,7 @@
 2008-05-13  Andrew Cagney  <cagney@redhat.com>
 
+	* jni/ProcBuilder.cxx (ProcBuilder::construct): Pass env to build().
+	
 	* jni/ProcBuilder.cxx: Update, Log.hxx renamed to logging.hxx.
 
 	* TestProcBuilder.java: New.
diff --git a/frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx b/frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx
index 411d072..2808367 100644
--- a/frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx
+++ b/frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx
@@ -91,7 +91,7 @@ frysk::sys::proc::ProcBuilder::construct(::jnixx::env env, jint pid,
     }
 
     try {
-      build(frysk::sys::ProcessIdentifierFactory::create(env, id));
+      build(env, frysk::sys::ProcessIdentifierFactory::create(env, id));
     } catch (java::lang::RuntimeException *e) {
       ::closedir(proc);
       throw e;


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


                 reply	other threads:[~2008-05-13 18:10 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=20080513181010.27854.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).