From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1977 invoked by alias); 25 May 2008 21:49:52 -0000 Received: (qmail 1951 invoked by uid 367); 25 May 2008 21:49:51 -0000 Date: Sun, 25 May 2008 21:49:00 -0000 Message-ID: <20080525214951.1936.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Rename ArrayBytes -> jbyteArrayElements, define jlongArrayElements et.al. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 3e3394b67b6c1dcb5bce4216bedc5f363d287263 X-Git-Newrev: 5d97469db26f702cc28746e00e1022a7588d1ae6 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q2/txt/msg00287.txt.bz2 The branch, master has been updated via 5d97469db26f702cc28746e00e1022a7588d1ae6 (commit) from 3e3394b67b6c1dcb5bce4216bedc5f363d287263 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5d97469db26f702cc28746e00e1022a7588d1ae6 Author: Andrew Cagney Date: Sun May 25 17:48:29 2008 -0400 Rename ArrayBytes -> jbyteArrayElements, define jlongArrayElements et.al. frysk-sys/frysk/sys/ChangeLog 2008-05-25 Andrew Cagney * jni/FileDescriptor.cxx: Use jbyteArrayElements / jstringUTFChars. * jni/AuditLibs.cxx: Ditto. * jni/StatelessFile.cxx: Ditto * jni/Signal.cxx-sh: Ditto * jni/Fork.hxx: Ditto. * jni/PseudoTerminal.cxx: Ditto. frysk-sys/frysk/sys/proc/ChangeLog 2008-05-25 Andrew Cagney * jni/CmdLineBuilder.cxx: Use jbyteArrayElements. * jni/Status.cxx: Ditto. * jni/Stat.cxx: Ditto. * jni/MapsBuilder.cxx: Ditto. frysk-sys/frysk/sys/ptrace/ChangeLog 2008-05-25 Andrew Cagney * jni/AddressSpace.cxx: Use jbyteArrayElements. * jni/RegisterSet.cxx: Ditto. frysk-sys/jnixx/ChangeLog 2008-05-25 Andrew Cagney * elements.hxx (jbyteArrayElements): Rename ArrayBytes. (jlongArrayElements): Define. (jstringUTFChars): Replace StringChars. * jni/Native.cxx: Update. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/sys/ChangeLog | 9 +++ frysk-sys/frysk/sys/jni/AuditLibs.cxx | 2 +- frysk-sys/frysk/sys/jni/FileDescriptor.cxx | 6 +- frysk-sys/frysk/sys/jni/Fork.cxx | 12 ++-- frysk-sys/frysk/sys/jni/Fork.hxx | 4 +- frysk-sys/frysk/sys/jni/PseudoTerminal.cxx | 4 +- frysk-sys/frysk/sys/jni/Signal.cxx-sh | 2 +- frysk-sys/frysk/sys/jni/StatelessFile.cxx | 8 +- frysk-sys/frysk/sys/proc/ChangeLog | 7 ++ frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx | 2 +- frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx | 2 +- frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx | 4 +- frysk-sys/frysk/sys/proc/jni/Stat.cxx | 2 +- frysk-sys/frysk/sys/proc/jni/Status.cxx | 2 +- frysk-sys/frysk/sys/ptrace/ChangeLog | 5 ++ frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx | 2 +- frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx | 2 +- frysk-sys/jnixx/ChangeLog | 5 ++ frysk-sys/jnixx/elements.hxx | 83 +++++++++++------------ frysk-sys/jnixx/jni/Native.cxx | 8 +- 20 files changed, 97 insertions(+), 74 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index c6c850e..d26ad79 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,3 +1,12 @@ +2008-05-25 Andrew Cagney + + * jni/FileDescriptor.cxx: Use jbyteArrayElements / jstringUTFChars. + * jni/AuditLibs.cxx: Ditto. + * jni/StatelessFile.cxx: Ditto + * jni/Signal.cxx-sh: Ditto + * jni/Fork.hxx: Ditto. + * jni/PseudoTerminal.cxx: Ditto. + 2008-05-24 Andrew Cagney * jni/FileDescriptor.cxx: Update; byteArray -> jbyteArray. diff --git a/frysk-sys/frysk/sys/jni/AuditLibs.cxx b/frysk-sys/frysk/sys/jni/AuditLibs.cxx index 9614942..fb0cda7 100644 --- a/frysk-sys/frysk/sys/jni/AuditLibs.cxx +++ b/frysk-sys/frysk/sys/jni/AuditLibs.cxx @@ -60,6 +60,6 @@ frysk::sys::AuditLibs::syscallToName(jnixx::env env, jint syscall, jint frysk::sys::AuditLibs::nameToSyscall(jnixx::env env, String name, jint machine) { - StringChars syscall_name = StringChars(env, name); + jstringUTFChars syscall_name = jstringUTFChars(env, name); return audit_name_to_syscall(syscall_name.elements(), machine); } diff --git a/frysk-sys/frysk/sys/jni/FileDescriptor.cxx b/frysk-sys/frysk/sys/jni/FileDescriptor.cxx index 0c33fd4..b831562 100644 --- a/frysk-sys/frysk/sys/jni/FileDescriptor.cxx +++ b/frysk-sys/frysk/sys/jni/FileDescriptor.cxx @@ -85,7 +85,7 @@ FileDescriptor::write(jnixx::env env, jint fd, { verifyBounds(env, bytes, off, len); errno = 0; - ArrayBytes b = ArrayBytes(env, bytes); + jbyteArrayElements b = jbyteArrayElements(env, bytes); int size = ::write(fd, b.elements() + off, len); int err = errno; // ::fprintf (stderr, "wrote <<%c>>\n", (char) b); @@ -152,7 +152,7 @@ FileDescriptor::read(jnixx::env env, jint fd, jnixx::jbyteArray bytes, jint off, jint len) { verifyBounds(env, bytes, off, len); - ArrayBytes b = ArrayBytes(env, bytes); + jbyteArrayElements b = jbyteArrayElements(env, bytes); jint ok = doRead(env, fd, b.elements() + off, len); b.release(); return ok; @@ -181,7 +181,7 @@ FileDescriptor::creat(jnixx::env) { jint FileDescriptor::open(jnixx::env env, String file, jint flags, jint mode) { // ::fprintf ("opening <<%s>>\n", pathname); - StringChars pathname = StringChars(env, file); + jstringUTFChars pathname = jstringUTFChars(env, file); int fd = ::open(pathname.elements(), flags, mode); if (fd < 0) { errnoException(env, errno, "open", "file %s", pathname.elements()); diff --git a/frysk-sys/frysk/sys/jni/Fork.cxx b/frysk-sys/frysk/sys/jni/Fork.cxx index 0eeefe3..561ffe6 100644 --- a/frysk-sys/frysk/sys/jni/Fork.cxx +++ b/frysk-sys/frysk/sys/jni/Fork.cxx @@ -141,17 +141,17 @@ private: ::_exit(errno); } } - StringChars in; - StringChars out; - StringChars err; + jstringUTFChars in; + jstringUTFChars out; + jstringUTFChars err; const char* inElements; const char* outElements; const char* errElements; public: redirect_stdio(jnixx::env env, String in, String out, String err) { - this->in = StringChars(env, in); - this->out = StringChars(env, out); - this->err = StringChars(env, err); + this->in = jstringUTFChars(env, in); + this->out = jstringUTFChars(env, out); + this->err = jstringUTFChars(env, err); // allocate memory for the arrays before the fork. inElements = this->in.elements(); outElements = this->out.elements(); diff --git a/frysk-sys/frysk/sys/jni/Fork.hxx b/frysk-sys/frysk/sys/jni/Fork.hxx index b64feb2..2b78775 100644 --- a/frysk-sys/frysk/sys/jni/Fork.hxx +++ b/frysk-sys/frysk/sys/jni/Fork.hxx @@ -80,7 +80,7 @@ public: * exec the specified program. */ class exec_program : public exec { - StringChars exe; + jstringUTFChars exe; const char* exeElements; StringArrayChars argv; char** argvElements; @@ -88,7 +88,7 @@ class exec_program : public exec { public: exec_program(jnixx::env env, java::lang::String exe, jnixx::array args, jlong environ) { - this->exe = StringChars(env, exe); + this->exe = jstringUTFChars(env, exe); this->argv = StringArrayChars(env, args); this->environ = (char**)(long)environ; // allocate the exec strings before the fork diff --git a/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx b/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx index 4118ba9..c3eee94 100644 --- a/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx +++ b/frysk-sys/frysk/sys/jni/PseudoTerminal.cxx @@ -89,11 +89,11 @@ frysk::sys::PseudoTerminal::getName(jnixx::env env, jint fd) { } class redirect_tty : public redirect { - StringChars pty; + jstringUTFChars pty; const char* ptyElements; public: redirect_tty(jnixx::env env, String name) { - pty = StringChars(env, name); + pty = jstringUTFChars(env, name); ptyElements = pty.elements(); } ~redirect_tty() { diff --git a/frysk-sys/frysk/sys/jni/Signal.cxx-sh b/frysk-sys/frysk/sys/jni/Signal.cxx-sh index f9744ce..cd03ccd 100644 --- a/frysk-sys/frysk/sys/jni/Signal.cxx-sh +++ b/frysk-sys/frysk/sys/jni/Signal.cxx-sh @@ -71,7 +71,7 @@ frysk::sys::Signal::tkill(::jnixx::env env, jint tid, jint sig, ::java::lang::String name) { errno = 0; if (::syscall(__NR_tkill, tid, sig) < 0) { - StringChars sname = StringChars(env, name); + jstringUTFChars sname = jstringUTFChars(env, name); errnoException(env, errno, "tkill", "task %d, signal %s (%d)", tid, sname.elements(), sig); sname.release(); // happens during unwind diff --git a/frysk-sys/frysk/sys/jni/StatelessFile.cxx b/frysk-sys/frysk/sys/jni/StatelessFile.cxx index 489c4b4..d2dc7b0 100644 --- a/frysk-sys/frysk/sys/jni/StatelessFile.cxx +++ b/frysk-sys/frysk/sys/jni/StatelessFile.cxx @@ -58,7 +58,7 @@ frysk::sys::StatelessFile::pread(jnixx::env env, jlong fileOffset, jint start, jint length) { verifyBounds(env, bytes, start, length); - ArrayBytes unixPath = ArrayBytes(env, GetUnixPath(env)); + jbyteArrayElements unixPath = jbyteArrayElements(env, GetUnixPath(env)); int fd = ::open((const char *)unixPath.elements(), O_RDONLY); if (fd < 0) errnoException(env, errno, "open", "filename %s", @@ -66,7 +66,7 @@ frysk::sys::StatelessFile::pread(jnixx::env env, jlong fileOffset, unixPath.release(); // XXX: 64-bit? - ArrayBytes buffer = ArrayBytes(env, bytes); + jbyteArrayElements buffer = jbyteArrayElements(env, bytes); ssize_t rc = ::pread64 (fd, start + buffer.elements(), length, fileOffset); if (rc < 0) { int savedErrno = errno; @@ -86,7 +86,7 @@ frysk::sys::StatelessFile::pwrite(jnixx::env env, jlong fileOffset, jint start, jint length) { verifyBounds (env, bytes, start, length); - ArrayBytes unixPath = ArrayBytes(env, GetUnixPath(env)); + jbyteArrayElements unixPath = jbyteArrayElements(env, GetUnixPath(env)); int fd = ::open((const char *)unixPath.elements(), O_WRONLY); if (fd < 0) errnoException(env, errno, "open", "filename %s", @@ -94,7 +94,7 @@ frysk::sys::StatelessFile::pwrite(jnixx::env env, jlong fileOffset, unixPath.release(); // XXX: 64-bit? - ArrayBytes buffer = ArrayBytes(env, bytes); + jbyteArrayElements buffer = jbyteArrayElements(env, bytes); ssize_t rc = ::pwrite64 (fd, start + buffer.elements(), length, fileOffset); if (rc < 0) { int savedErrno = errno; diff --git a/frysk-sys/frysk/sys/proc/ChangeLog b/frysk-sys/frysk/sys/proc/ChangeLog index b6047f9..9873ddd 100644 --- a/frysk-sys/frysk/sys/proc/ChangeLog +++ b/frysk-sys/frysk/sys/proc/ChangeLog @@ -1,3 +1,10 @@ +2008-05-25 Andrew Cagney + + * jni/CmdLineBuilder.cxx: Use jbyteArrayElements. + * jni/Status.cxx: Ditto. + * jni/Stat.cxx: Ditto. + * jni/MapsBuilder.cxx: Ditto. + 2008-05-24 Andrew Cagney * jni/AuxvBuilder.cxx: Update; byteArray -> jbyteArray. diff --git a/frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx b/frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx index b90a1ba..ef013aa 100644 --- a/frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx +++ b/frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx @@ -193,7 +193,7 @@ AuxvBuilder::construct(jnixx::env env, jint pid) { bool AuxvBuilder::construct(jnixx::env env, jnixx::jbyteArray buf) { - ArrayBytes bytes = ArrayBytes(env, buf); + jbyteArrayElements bytes = jbyteArrayElements(env, buf); bool ok = ::construct(env, *this, bytes); bytes.release(); return ok; diff --git a/frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx b/frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx index 98cec61..cb0b1ec 100644 --- a/frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx +++ b/frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx @@ -85,7 +85,7 @@ frysk::sys::proc::CmdLineBuilder::construct(jnixx::env env, jint pid) { bool frysk::sys::proc::CmdLineBuilder::construct(jnixx::env env, jnixx::jbyteArray buf) { - ArrayBytes bytes = ArrayBytes(env, buf); + jbyteArrayElements bytes = jbyteArrayElements(env, buf); bool ok = ::construct(env, this, bytes); bytes.release(); return ok; diff --git a/frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx b/frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx index b8d00d3..ddea631 100644 --- a/frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx +++ b/frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx @@ -102,7 +102,7 @@ construct(jnixx::env env, frysk::sys::proc::MapsBuilder* builder, Bytes& buf) { bool frysk::sys::proc::MapsBuilder::construct(jnixx::env env, jnixx::jbyteArray buf) { - ArrayBytes bytes = ArrayBytes(env, buf); + jbyteArrayElements bytes = jbyteArrayElements(env, buf); bool ok = ::construct(env, this, bytes); bytes.release(); return ok; @@ -115,7 +115,7 @@ frysk::sys::proc::MapsBuilder::construct(jnixx::env env, jint pid) { return false; { jnixx::jbyteArray array = jnixx::jbyteArray::NewByteArray(env, bytes.length()); - ArrayBytes b = ArrayBytes(env, array); + jbyteArrayElements b = jbyteArrayElements(env, array); memcpy(b.elements(), bytes.elements(), bytes.length()); b.release(); buildBuffer(env, array); diff --git a/frysk-sys/frysk/sys/proc/jni/Stat.cxx b/frysk-sys/frysk/sys/proc/jni/Stat.cxx index f7e675f..44129b4 100644 --- a/frysk-sys/frysk/sys/proc/jni/Stat.cxx +++ b/frysk-sys/frysk/sys/proc/jni/Stat.cxx @@ -140,7 +140,7 @@ frysk::sys::proc::Stat::scan(jnixx::env env, jint procPid) { frysk::sys::proc::Stat frysk::sys::proc::Stat::scan(jnixx::env env, jnixx::jbyteArray buf) { - ArrayBytes bytes = ArrayBytes(env, buf); + jbyteArrayElements bytes = jbyteArrayElements(env, buf); ::scan(env, (const char*) bytes.elements(), *this, GetFine(env)); bytes.release(); return *this; diff --git a/frysk-sys/frysk/sys/proc/jni/Status.cxx b/frysk-sys/frysk/sys/proc/jni/Status.cxx index 4bb296f..8bcf600 100644 --- a/frysk-sys/frysk/sys/proc/jni/Status.cxx +++ b/frysk-sys/frysk/sys/proc/jni/Status.cxx @@ -124,7 +124,7 @@ Status::scan(jnixx::env env, jint pid) { Status Status::scan(jnixx::env env, jnixx::jbyteArray buf) { - ArrayBytes bytes = ArrayBytes(env, buf); + jbyteArrayElements bytes = jbyteArrayElements(env, buf); Status s = ::scan(env, (const char*)bytes.elements(), *this, GetFine(env)); bytes.release(); return s; diff --git a/frysk-sys/frysk/sys/ptrace/ChangeLog b/frysk-sys/frysk/sys/ptrace/ChangeLog index 0121fe7..9484163 100644 --- a/frysk-sys/frysk/sys/ptrace/ChangeLog +++ b/frysk-sys/frysk/sys/ptrace/ChangeLog @@ -1,3 +1,8 @@ +2008-05-25 Andrew Cagney + + * jni/AddressSpace.cxx: Use jbyteArrayElements. + * jni/RegisterSet.cxx: Ditto. + 2008-05-24 Andrew Cagney * jni/AddressSpace.cxx: Update; byteArray -> jbyteArray. diff --git a/frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx b/frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx index 0d3c666..598d8cc 100644 --- a/frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx +++ b/frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx @@ -147,7 +147,7 @@ frysk::sys::ptrace::AddressSpace::transfer(::jnixx::env env, } // extract or modify - ArrayBytes bytes = ArrayBytes(env, byteArray); + jbyteArrayElements bytes = jbyteArrayElements(env, byteArray); if (op == ptPeek) memcpy(offset + i + bytes.elements(), &w.b[woff], wlen); else { diff --git a/frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx b/frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx index e22ab3c..d8fe8ca 100644 --- a/frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx +++ b/frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx @@ -55,7 +55,7 @@ frysk::sys::ptrace::RegisterSet::transfer(::jnixx::env env, ::jnixx::jbyteArray data, jint length) { verifyBounds(env, data, length); - ArrayBytes bytes = ArrayBytes(env, data); + jbyteArrayElements bytes = jbyteArrayElements(env, data); ptraceOp(env, op, pid, NULL, (long) bytes.elements()); bytes.release(); } diff --git a/frysk-sys/jnixx/ChangeLog b/frysk-sys/jnixx/ChangeLog index d59e3b2..4cc0ec7 100644 --- a/frysk-sys/jnixx/ChangeLog +++ b/frysk-sys/jnixx/ChangeLog @@ -1,5 +1,10 @@ 2008-05-25 Andrew Cagney + * elements.hxx (jbyteArrayElements): Rename ArrayBytes. + (jlongArrayElements): Define. + (jstringUTFChars): Replace StringChars. + * jni/Native.cxx: Update. + * JniBindings.java: Generate GetArrayElements and ReleaesArrayElements as aliases for GetArrayElements et.al. diff --git a/frysk-sys/jnixx/elements.hxx b/frysk-sys/jnixx/elements.hxx index bafbb51..75f137f 100644 --- a/frysk-sys/jnixx/elements.hxx +++ b/frysk-sys/jnixx/elements.hxx @@ -51,48 +51,6 @@ extern char** strings2chars(::jnixx::env, ::jnixx::array); extern ::jnixx::array chars2strings(::jnixx::env, char**); extern void slurp(::jnixx::env, const char[], jbyte* (&), jsize&); -class StringChars { -private: - ::java::lang::String string; - ::jnixx::env env; - const char* p; -public: - void operator=(const StringChars& src) { - this->env = src.env; - this->string = src.string; - // Avoid double references by not copying P. - this->p = NULL; - } - StringChars() { - this->p = NULL; - } - StringChars(const StringChars& old) { - this->operator=(old); - } - StringChars(::jnixx::env env, ::java::lang::String string) { - this->env = env; - this->string = string; - this->p = NULL; - } - const char* elements() { - if (p == NULL) { - if (string != NULL) { - this->p = string.GetStringUTFChars(env); - } - } - return p; - } - void release() { - if (p != NULL) { - string.ReleaseStringUTFChars(env, p); - p = NULL; - } - } - ~StringChars() { - release(); - } -}; - class StringArrayChars { private: ::jnixx::env env; @@ -197,6 +155,44 @@ public: typedef Elements Bytes; /** + * Scratch UTF Chars. + */ +class jstringUTFChars : public Elements { +private: + ::java::lang::String string; +public: + void operator=(const jstringUTFChars& src) { + this->copy(src); + this->string = src.string; + } + jstringUTFChars() { + } + jstringUTFChars(const jstringUTFChars& old) { + this->operator=(old); + } + jstringUTFChars(::jnixx::env env, ::java::lang::String string) + : Elements(env) { + this->string = string; + } + void slurp(jnixx::env& env, const char* (&buf), jsize &len) { + if (string == NULL) { + buf = NULL; + len = 0; + } else { + buf = string.GetStringUTFChars(env); + len = ::strlen(buf); + } + } + void free(jnixx::env& env, const char* buf, int mode) { + string.ReleaseStringUTFChars(env, buf); + } + ~jstringUTFChars() { + release(); + } +}; + + +/** * A scratch buffer containing the file's entire contents; the buffer * is recovered once this goes out of scope. */ @@ -292,6 +288,7 @@ protected: types.ReleaseArrayElements(env, buf, mode); } }; -typedef ArrayElements ArrayBytes; +typedef ArrayElements jbyteArrayElements; +typedef ArrayElements jlongArrayElements; #endif diff --git a/frysk-sys/jnixx/jni/Native.cxx b/frysk-sys/jnixx/jni/Native.cxx index c207cce..646aee4 100644 --- a/frysk-sys/jnixx/jni/Native.cxx +++ b/frysk-sys/jnixx/jni/Native.cxx @@ -97,9 +97,9 @@ jnixx::Native::catchRuntimeException(jnixx::env env, jnixx::Native e) { } static void -throwCopy(jnixx::env env, int n, StringChars stringChars, +throwCopy(jnixx::env env, int n, jstringUTFChars stringChars, StringArrayChars stringArrayChars, - ArrayBytes arrayBytes) { + jbyteArrayElements arrayBytes) { if (n <= 0) { java::lang::RuntimeException::ThrowNew(env, "oops!"); } else { @@ -114,8 +114,8 @@ void jnixx::Native::throwElements(jnixx::env env, String string, jnixx::array stringArray, jnixx::jbyteArray bytes) { - StringChars stringChars = StringChars(env, string); + jstringUTFChars stringChars = jstringUTFChars(env, string); StringArrayChars stringArrayChars = StringArrayChars(env, stringArray); - ArrayBytes arrayBytes = ArrayBytes(env, bytes); + jbyteArrayElements arrayBytes = jbyteArrayElements(env, bytes); throwCopy(env, 4, stringChars, stringArrayChars, arrayBytes); } hooks/post-receive -- frysk system monitor/debugger