mturk 2005/06/03 00:35:07
Modified: jni/native/include tcn.h
jni/native/src error.c
Log:
Add generic throw for printf style arguments.
Revision Changes Path
1.11 +2 -2 jakarta-tomcat-connectors/jni/native/include/tcn.h
Index: tcn.h
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/include/tcn.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- tcn.h 1 Jun 2005 06:38:09 -0000 1.10
+++ tcn.h 3 Jun 2005 07:35:07 -0000 1.11
@@ -56,7 +56,7 @@
JNIEXPORT RT JNICALL Java_org_apache_tomcat_jni_##CL##_##FN
/* Private helper functions */
-void tcn_Throw(JNIEnv *env, const char *cname, const char *msg);
+void tcn_Throw(JNIEnv *env, const char *fmt, ...);
void tcn_ThrowException(JNIEnv *env, const char *msg);
void tcn_ThrowAPRException(JNIEnv *env, apr_status_t err);
jstring tcn_new_string(JNIEnv *env, const char *str, int l);
1.8 +17 -4 jakarta-tomcat-connectors/jni/native/src/error.c
Index: error.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/error.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- error.c 24 May 2005 09:24:40 -0000 1.7
+++ error.c 3 Jun 2005 07:35:07 -0000 1.8
@@ -18,9 +18,10 @@
* @author Mladen Turk
* @version $Revision$, $Date$
*/
-
+
#include "apr.h"
#include "apr_pools.h"
+#include "apr_strings.h"
#include "tcn.h"
/* Merge IS_ETIMEDOUT with APR_TIMEUP
@@ -29,7 +30,7 @@
/*
* Convenience function to help throw an Exception.
*/
-void tcn_Throw(JNIEnv *env, const char *cname, const char *msg)
+static void do_throw(JNIEnv *env, const char *cname, const char *msg)
{
jclass javaExceptionClass;
@@ -47,7 +48,19 @@
*/
void tcn_ThrowException(JNIEnv *env, const char *msg)
{
- tcn_Throw(env, "java/lang/Exception", msg);
+ do_throw(env, "java/lang/Exception", msg);
+}
+
+void tcn_Throw(JNIEnv *env, const char *fmt, ...)
+{
+ char msg[TCN_BUFFER_SZ] = {'\0'};
+ va_list ap;
+
+ va_start(ap, fmt);
+ apr_vsnprintf(msg, TCN_BUFFER_SZ, fmt, ap);
+ do_throw(env, "java/lang/Exception", msg);
+ va_end(ap);
+ free(msg);
}
/*
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]