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