public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM] master: Implement JNI demangler.
Date: Wed, 16 Apr 2008 18:10:00 -0000 [thread overview]
Message-ID: <20080416181044.10878.qmail@sourceware.org> (raw)
The branch, master has been updated
via 8bd2c7f9c6c25521b2847522690a7a705b72741b (commit)
from 1e7034c7369e8eba1a69d61ffc3ea32afc23550c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 8bd2c7f9c6c25521b2847522690a7a705b72741b
Author: Andrew Cagney <cagney@redhat.com>
Date: Wed Apr 16 14:09:34 2008 -0400
Implement JNI demangler.
frysk-sys/lib/stdcpp/ChangeLog
2008-04-16 Andrew Cagney <cagney@redhat.com>
* jni/Demangler.cxx (Java_lib_stdcpp_Demangler_demangle): Implement.
-----------------------------------------------------------------------
Summary of changes:
frysk-sys/lib/stdcpp/ChangeLog | 4 ++++
frysk-sys/lib/stdcpp/jni/Demangler.cxx | 30 +++++++++++++++++++++++-------
2 files changed, 27 insertions(+), 7 deletions(-)
First 500 lines of diff:
diff --git a/frysk-sys/lib/stdcpp/ChangeLog b/frysk-sys/lib/stdcpp/ChangeLog
index c74e989..d6f9a0c 100644
--- a/frysk-sys/lib/stdcpp/ChangeLog
+++ b/frysk-sys/lib/stdcpp/ChangeLog
@@ -1,3 +1,7 @@
+2008-04-16 Andrew Cagney <cagney@redhat.com>
+
+ * jni/Demangler.cxx (Java_lib_stdcpp_Demangler_demangle): Implement.
+
2008-04-11 Andrew Cagney <cagney@redhat.com>
* jni/Demangler.cxx: New.
diff --git a/frysk-sys/lib/stdcpp/jni/Demangler.cxx b/frysk-sys/lib/stdcpp/jni/Demangler.cxx
index 8a72be6..e1702e6 100644
--- a/frysk-sys/lib/stdcpp/jni/Demangler.cxx
+++ b/frysk-sys/lib/stdcpp/jni/Demangler.cxx
@@ -37,15 +37,31 @@
// version and license this file solely under the GPL without
// exception.
+
+#include <cxxabi.h>
+#include <stdio.h>
+#include <alloca.h>
+
#include "lib_stdcpp_Demangler.h"
+using namespace abi;
JNIEXPORT jstring
-Java_lib_stdcpp_Demangler_demangle (JNIEnv *env, jclass, jstring)
-{
- jclass cls = env->FindClass("java/lang/RuntimeException");
- if (cls != NULL) {
- env->ThrowNew(cls, __FILE__ ":Java_lib_stdcpp_Demangler_demangle not implemented");
- }
- return 0;
+Java_lib_stdcpp_Demangler_demangle(JNIEnv *env, jclass klass,
+ jstring mangledString) {
+ if (mangledString == NULL)
+ return NULL;
+
+ int status = -1;
+
+ const char* mangledName = env->GetStringUTFChars(mangledString, NULL);
+ if (mangledName == NULL)
+ return NULL; // exception pending
+ const char *demangledName = __cxa_demangle(mangledName, 0, 0, &status);
+ env->ReleaseStringUTFChars(mangledString, mangledName);
+
+ if (status == 0)
+ return env->NewStringUTF(demangledName);
+ else
+ return mangledString;
}
hooks/post-receive
--
frysk system monitor/debugger
reply other threads:[~2008-04-16 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=20080416181044.10878.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).