You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2003/01/23 13:13:03 UTC

cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_channel_jni.c

mturk       2003/01/23 04:13:03

  Modified:    jk/native2/common jk_channel_jni.c
  Log:
  Use the macro instead of strdup. We don't need to dupe the
  strings on non EBCID machines.
  
  Revision  Changes    Path
  1.39      +13 -14    jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c
  
  Index: jk_channel_jni.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- jk_channel_jni.c	21 Nov 2002 09:03:17 -0000	1.38
  +++ jk_channel_jni.c	23 Jan 2003 12:13:03 -0000	1.39
  @@ -112,16 +112,15 @@
   /*
      Duplicate string and convert it to ASCII on EBDIC based systems
      Needed for at least AS/400 and BS2000 but what about other EBDIC systems ?
  +   Implement as macro cause:   
  +   we don't need to duplicate the strings if they are const on non EBDIS systems 
   */
  -static void *strdup_ascii(jk_env_t *env, 
  -                          char *s)
  -{
  +
   #if defined(AS400) || defined(_OSD_POSIX)
  -	return (env->tmpPool->pstrdup2ascii(env, env->tmpPool, s));
  +#define SSTRDUP_ASCII(e, s) ((e)->tmpPool->pstrdup2ascii(env, env->tmpPool, s)) 
   #else
  -	return (env->tmpPool->pstrdup(env, env->tmpPool, s));
  +#define SSTRDUP_ASCII(e, s) (s) 
   #endif
  -}
   
   static int JK_METHOD jk2_channel_jni_init(jk_env_t *env,
                                             jk_bean_t *jniWB)
  @@ -207,7 +206,7 @@
       endpoint->channelData=epData;
   
       /* AS400/BS2000 need EBCDIC to ASCII conversion for JNI */
  -    jniCh->jniBridge = (*jniEnv)->FindClass(jniEnv, strdup_ascii(env, jniCh->className) );
  +    jniCh->jniBridge = (*jniEnv)->FindClass(jniEnv, SSTRDUP_ASCII(env, jniCh->className) );
       
       if( jniCh->jniBridge == NULL ) {
           env->l->jkLog(env, env->l, JK_LOG_ERROR,
  @@ -235,8 +234,8 @@
   
       /* AS400/BS2000 need EBCDIC to ASCII conversion for JNI */
       jmethod=(*jniEnv)->GetStaticMethodID(jniEnv, jniCh->jniBridge,
  -                 strdup_ascii(env, "createJavaContext"), 
  -                 strdup_ascii(env, "(Ljava/lang/String;J)Ljava/lang/Object;"));
  +                 SSTRDUP_ASCII(env, "createJavaContext"), 
  +                 SSTRDUP_ASCII(env, "(Ljava/lang/String;J)Ljava/lang/Object;"));
   
       if( jmethod == NULL ) {
           env->l->jkLog(env, env->l, JK_LOG_ERROR,
  @@ -250,7 +249,7 @@
       }
       
       /* AS400/BS2000 need EBCDIC to ASCII conversion for JNI */
  -    jstr=(*jniEnv)->NewStringUTF(jniEnv, strdup_ascii(env, "channelJni" ));
  +    jstr=(*jniEnv)->NewStringUTF(jniEnv, SSTRDUP_ASCII(env, "channelJni" ));
       
       jobj=(*jniEnv)->CallStaticObjectMethod( jniEnv, jniCh->jniBridge,
                                               jmethod,
  @@ -276,8 +275,8 @@
       
       /* AS400/BS2000 need EBCDIC to ASCII conversion for JNI */
       jmethod=(*jniEnv)->GetStaticMethodID(jniEnv, jniCh->jniBridge,
  -                                         strdup_ascii(env, "getBuffer"),
  -                                         strdup_ascii(env, "(Ljava/lang/Object;I)[B"));
  +                                         SSTRDUP_ASCII(env, "getBuffer"),
  +                                         SSTRDUP_ASCII(env, "(Ljava/lang/Object;I)[B"));
       if( jmethod == NULL ) {
           env->l->jkLog(env, env->l, JK_LOG_ERROR,
                         "channel_jni.open() can't find getBuffer\n"); 
  @@ -301,8 +300,8 @@
       /* AS400/BS2000 need EBCDIC to ASCII conversion for JNI */
       jniCh->writeMethod =
           (*jniEnv)->GetStaticMethodID(jniEnv, jniCh->jniBridge,
  -                                     strdup_ascii(env, "jniInvoke"),
  -                                     strdup_ascii(env, "(JLjava/lang/Object;)I"));
  +                                     SSTRDUP_ASCII(env, "jniInvoke"),
  +                                     SSTRDUP_ASCII(env, "(JLjava/lang/Object;)I"));
       
       if( jniCh->writeMethod == NULL ) {
           env->l->jkLog(env, env->l, JK_LOG_EMERG,
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>