2008-06-04  Andrew Cagney  <cagney@redhat.com>

	* elements.cxx (slurp): Don't count the terminating NUL in the
	buffer's length.

2008-06-03  Andrew Cagney  <cagney@redhat.com>

	* bounds.hxx (verifyBounds): Allow bound to reach array end.

2008-05-25  Andrew Cagney  <cagney@redhat.com>

	* elements.hxx (jbyteArrayElements): Rename ArrayBytes.
	(jlongArrayElements): Define.
	(jstringUTFChars): Replace StringChars.
	* jni/Native.cxx: Update.
	
	* JniBindings.java: Generate GetArrayElements and
	ReleaesArrayElements as aliases for Get<primitive>ArrayElements
	et.al.
	* elements.hxx (Elements<type>): Re-implement Bytes using a
	template; typedef Bytes as Elements<jbyte>
	(FileElements<type>): Ditto for FileBytes.
	(ArrayElements<type,types>): Ditto for ArrayBytes.
	(slurp): New.
	* elements.cxx: Update.
	
2008-05-24  Andrew Cagney  <cagney@redhat.com>

	* jnixx.hxx: Fully qualify all JNI types.

	* Printer.java: Generate jnixx::jbyteArray, instead of
	jnixx::byteArray; et.al.
	* PrintNamespaces.java: Ditto.
	* JniBindings.java: Ditto.
	* elements.hxx: Update.
	* bounds.hxx: Update.
	* jni/Native.cxx: Update.

2008-05-22  Andrew Cagney  <cagney@redhat.com>

	* exceptions.cxx (errnoException): Pass up error, not errno.
	(errnoException): Ditto.

	* exceptions.cxx (errnoException): Use vasprintf, not snprintf.
	(runtimeException): Simplify exception checks; throw RuntimeException.
	* print.cxx (vajprintf): Ditto.

2008-05-21  Andrew Cagney  <cagney@redhat.com>

	* JniBindings.java: Add == for Object.

	* elements.hxx (class StringChars): Implement operator=, copy
	constructor, add elements(), rename free() to release().
	(class StringArrayChars): Ditto.
	(class Bytes): Add virtual elements() and length(), operator= and
	copy constructor.
	(class FileBytes): Implement.
	(class ArrayBytes): Implement.
	* elements.cxx (FileBytes::FileBytes): Update.
	* Native.java (throwElements): New.
	* TestJnixx.java (testElementRelease()): New.
	* jni/Native.cxx (Native::throwElements): New.
	* cni/Native.cxx (Native::throwElements): New.
	* jni/Native.cxx (Native::throwElements): New.

2008-05-20  Andrew Cagney  <cagney@redhat.com>

	* JniBindings.java: Generate attributes such as no-return.
	* exceptions.cxx (errnoException): Implement.

	* elements.hxx (class FileBytes): Add pid/tid method.
	* elements.cxx (FileBytes::FileBytes): Implement.
	(slurp): Refactor out of FileBytes constructor; include NUL in
	length.

	* scan.hxx: New.
	* scan.cxx: New.

	* elements.hxx (class ArrayBytes): Rename ByteArrayElements.  Add
	length field, extend ByteArray, rename "p" to elements.
	(class Bytes): New.
	(class FileBytes): New.
	* elements.cxx (class FileBytes): Implement.

2008-05-17  Andrew Cagney  <cagney@redhat.com>

	* jni/Native.cxx: Use new/delete.  Don't #include <malloc.h>.
	* elements.cxx: Ditto.

	* TestJnixx.java (testThrowCatch()): New.
	(testRethrowCatch()): New.
	* JniBindings.java: Add IsInstanceOf.  Generate
	throwPendingException.
	* jnixx.hxx (jnixx::exception): Delete.
	(jnixx::env::throwPendingException()): New.
	* PrintHxxDefinitions.java: Don't check for NULL objects.
	* PrintCxxDefinitions.java: Generate catch java::lang::Throwable.
	* exceptions.cxx (runtimeException): Catch java::lang::Throwable.
	* print.cxx (vajprintf): Ditto.

2008-05-14  Andrew Cagney  <cagney@redhat.com>

	Rename directory to jnixx/.
	* Main.java: Generate new include path.
	* elements.hxx, elements.cxx: rename chars.hxx, and chars.cxx.
	* cni/Native.cxx: Update.
	* logging.cxx: Update.
	* exceptions.cxx: Update.
	* print.cxx: Update.
	* jni/Native.cxx: Update.
	* xx.cxx: Delete.
	* xx.hxx: Delete.
	
	* PrintCxxDefinitions.java: Generate ID variables.

	* JniBindings.java: Generate array method names identical to JNI.
	* chars.hxx (class ByteArrayElements): Update.
	* chars.cxx (strings2chars): Update.
	
	* chars.hxx (class ByteArrayElements): New.
	* bounds.hxx: New.
	* JniBindings.java: Generate GetArrayLength, and Throw.

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.

	* PrintDeclarations.java: Generate a parameterless constructor.
	* jnixx.hxx (jnixx::env::env()): New.
	* JniBindings.java: Add Object.!=.
	* chars.hxx (class StringArrayChars): New.
	(class StringChars): New.

2008-05-12  Andrew Cagney  <cagney@redhat.com>

	* JniBindings.java: Generate primitive array methods.
	* PrintCxxDefinitions.java: Generate primitive array types.
	* PrintDeclarations.java: Ditto.
	* PrintHxxDefinitions.java: Ditto.
	* PrintNamespaces.java: Ditto.
	* Printer.java: Ditto.

	* Main.java (getJarClasses(String)): New.
	(getNativeClasses(HashSet)): New.
	(getReferences(HashSet)): New.
	(main(String[])): Limit to native classes.
	* ClassVisitor.java (visit(Class[])): Delete.
	(acceptComponent(Class)): Delete.
	* PrintHxxDefinitions.java: Update.
	* PrintDeclarations.java: Update.

	Have object array extend ::java::lang::Object.
	* JniBindings.java (printGlobals(Printer,Class)): New. Generate
	the array template.
	* PrintDeclarations.java: Call printGlobals for each class.  Make
	java's root object the jnixx root.
	* jnixx.hxx (jnixx::object): Delete.
	(jnixx::array): Delete.
	* chars.cxx (jnixx::array): Update.
	* PrintHxxDefinitions.java: Update.

2008-05-11  Andrew Cagney  <cagney@redhat.com>

	* Main.java: Set the VM during load.
	* PrintDeclarations.java: Generate non-env parametered wrappers.
	* PrintHxxDefinitions.java: Ditto.
	* Printer.java: Ditto.

2008-05-09  Andrew Cagney  <cagney@redhat.com>

	* Main.java: Take a class file; dump all classes; print progress.
	* Printer.java: Break up <: in "array<::Component>"

	* Main.java: Add a header filename parameter; in .cxx file,
	generate #include of header, instead of header contents.

	* PrintDeclarations.java: Generate a protected constructor; and a
	static Cast method.
	* jnixx.hxx (jnixx::array): Add Cast method.
	* Printer.java: Generate calls to Cast.
	* PrintCxxDefinitions.java: Ditto
	* print.cxx: Use explicit casts.

	* jnixx.hxx (jnixx::array): Add templated JNI array method.
	* chars.cxx: Use tempated array methods.
	* JniBindings.java: Drop String parameter to GetStringLength.

	* jni/Native.cxx (Native::sizeOfObject): Replace sizeOfJnixxObject.
	(Native::sizeOfObjectArray, Native::sizeOfClass): New.
	* cni/Native.cxx (Native::sizeOfObject): Replace sizeOfJnixxObject
	(Native::sizeOfClass, Native::sizeOfObjectArray): New.
	* TestJnixx.java (testSizeOfObject): Replace testSizeofJnixxObject.
	(testSizeOfObjectArray, testSizeOfClass): New.
	* Native.java (sizeOfObjectArray()): New.
	* Printer.java (printCxxName): For object array's generate a
	templated class instance.
	* PrintNamespaces.java: Don't generate array namespace names.
	* chars.cxx (strings2chars): Use Array templates.
	* chars.hxx: Ditto.

	* ClassWalker.java: Walk an array's component type, and before the
	wrapping array.

	* 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.
	* PrintHxxDefinitions.java: Use.
	* PrintCxxDefinitions.java: Use; Extend ClassWalker.
	* TestJnixx.java (testCharsConversion()): New.
	* chars.hxx: New.
	* chars.cxx: .New.
	* jni/Native.cxx (Native::copy): New.
	* cni/Native.cxx (Native::copy): New.

2008-05-08  Andrew Cagney  <cagney@redhat.com>

	* jnixx.hxx (jnixx::env): Fill in missing JNI bindings; match JNI
	names.
	* print.cxx: Update.
	* exceptions.cxx: Update.
	
	* JniBindings.java: New; enbed JNI in class.
	* PrintHxxDefinitions.java: Use.
	* PrintDeclarations.java: Use.

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.
	* exceptions.cxx: Ditto.
	* exceptions.hxx: Ditto.
	* Main.java: Accept a list of classes.

	* Printer.java: Generate passing jnixx::env by value, not reference.
	* Native.java: New.
	* jni/Native.cxx: New.
	* cni/Native.cxx: New.
	* TestJnixx.java: New.
	* PrintHxxDefinitions.java: Ditto.
	* PrintCxxDefinitions.java: Ditto.

	* jnixx.hxx (jnixx::env): Rename jniEnv to _jni, make public.
	* Printer.java: Generate _jni, _class, and _class_().
	* PrintDeclarations.java: Ditto.
	* PrintCxxDefinitions.java: Ditto.
	* Main.java: Ditto.
	
	* jnixx.hxx (getStringUTFLength): New.
	(getStringUTFRegion): New.

	* Printer.java: Parameterize with PrintWriter.
	* Main.java: Flush the Printer.
	* PrintDeclarations.java: Generate classes that extend either
	jnixx::object or jnixx::objectArray.
	* jnixx.hxx (jnixx): Declare env, exception, object, and
	objectArray.

	* PrintCxxDefinitions.java: Generate _class$ variable of nested
	classes.
	* Main.java: Ditto.
	* ClassVisitor.java: Visit nested classes.
	* ClassWalker.java: Update.
	* PrintCxxDefinitions.java: Update.
	* PrintHxxDefinitions.java: Update.
	* PrintDeclarations.java: Update.
	* Printer.java: Encode "$".
	
	* print.cxx: Include Errno-jni.hxx.
	* exceptions.cxx: Include Errno-jni.hxx.
	* Main.java: Move jnixx::exception definition to ...
	* jnixx.hxx (jnixx::exception): ... here.
	
2008-05-06  Andrew Cagney  <cagney@redhat.com>

	Generate inlined C++ headers.
	* ClassWalker.java: Replace WalkClass.
	* ClassVisitor.java: Replace ClassWalker.
	* PrintDefinitions.java: Delete; split into ...
	* PrintCxxDefinitions.java: New; ... this ...
	* PrintHxxDefinitions.java: New; ... and this.
	* Main.java: Use.
	* PrintDeclarations.java: Extend ClassWalker.
	* PrintNamespaces.java: Extend ClassWalker.
	* Printer.java: Update.
	* jnixx.hxx: Simplify.
	* PrintIncludes.java: Delete.
	
	* jnixx.hxx (jnixx::env): Add <Type>Array methods.
	* PrintDefinitions.java: Don't cast primitive array results.

2008-05-05  Andrew Cagney  <cagney@redhat.com>

	* jnixx.hxx (jnixx::object): New.
	* Main.java: Generate each class extending jnixx::object instead
	of __jobject.
	* PrintDeclarations.java: Ditto
	* PrintDefinitions.java: Ditto.
	* PrintNamespaces.java: Ditto.
	* Printer.java: Ditto.
	* PrintIncludes.java: New; same.
	* print.cxx: Convert to jnixx::object.
	* print.cxx: Ditto.
	
	* Printer(dent(int,String,String)): New.
	* PrintNamespaces.java: Clean up generated indentation.
	* PrintDefinitions.java: Ditto.
	* PrintDeclarations.java: Ditto.
	* Main.java: Ditto.

	* jnixx.hxx: New.
	* Printer.java: Generate jnixx::env& instead of JNIEnv*, and
	jnixx::exception instead of jnixx_exception.
	* PrintDefinitions.java: Ditto.
	* PrintDeclarations.java: Ditto.
	* Main.java: Generate #include jnixx.hxx instead of xx.hxx. 
	* print.hxx: Use jnixx.hxx; replace JNIEnv* with jnixx::env&.
	* print.cxx: Ditto.
	* exceptions.hxx: Ditto.
	
2008-05-02  Andrew Cagney  <cagney@redhat.com>

	* jnixx.java: Refactor into ...
	* Main.java: ... this; new.
	* WalkClass.java: ... this; new.
	* PrintDeclarations.java: ... this; new.
	* PrintDefinitions.java: ... this; new.
	* Printer.java: ... this; new.
	* PrintNamespaces.java: ... this; new.

	* Rename directory to frysk/jnixx/

	* jnixx.java: Generate constructors and field accessors.

2008-05-01  Andrew Cagney  <cagney@redhat.com>

	* exceptions.cxx (runtimeException): Throw an exception.
	* exceptions.hxx: Mark with noreturn.

	* xx.hxx (jstringArray): Define.
	* jnixx.java: Generate function signatures; wrap headers in
	#ifdef; better handle array types.

	* jnixx.java: Use findClass and frysk/jni/xx.hxx; throw
	jnixx_exception.
	* xx.hxx: Replace members.hxx.
	* xx.cxx: Replace members.cxx.

	* jnixx.java: Generate Class(JNIEnv*) method; drop jclass
	parameter; don't new the exception.

2008-04-30  Andrew Cagney  <cagney@redhat.com>

	* jnixx.java: New.

2008-04-17  Andrew Cagney  <cagney@redhat.com>

	* exceptions.cxx: New.
	* exceptions.hxx: New.

2008-04-16  Andrew Cagney  <cagney@redhat.com>

	* util.cxx: New.
	* print.cxx: New.
	* print.hxx: New.
	* util.hxx: New.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
