@@ -68,11 +68,11 @@ Java_nsk_stress_jni_JNIter001_jnistress (JNIEnv *env, jobject jobj, jstring jstr
6868
6969 env->MonitorEnter (jobj); CE
7070 if (!allocs) {
71- element = (CHAR_ARRAY *)malloc ( sizeof (CHAR_ARRAY));
72- element->str = (const char **)malloc ( nstr*sizeof (const char *));
73- element->checkstr = (char **)malloc ( nstr*sizeof (char *));
71+ element = (CHAR_ARRAY *)c_malloc (env, sizeof (CHAR_ARRAY));
72+ element->str = (const char **)c_malloc (env, nstr*sizeof (const char *));
73+ element->checkstr = (char **)c_malloc (env, nstr*sizeof (char *));
7474 for (j=0 ;j<nstr;j++)
75- element->checkstr [j] = (char *)malloc ( DIGESTLENGTH*sizeof (char ));
75+ element->checkstr [j] = (char *)c_malloc (env, DIGESTLENGTH*sizeof (char ));
7676 }
7777 for (j=0 ;j<DIGESTLENGTH;j++) {
7878 digest[j]=0 ;
@@ -150,6 +150,7 @@ Java_nsk_stress_jni_JNIter001_jnistress1(JNIEnv *env, jobject jobj, jstring jstr
150150 static long len=0 ;
151151 static unsigned int equal=1 ;
152152 char *elem;
153+ int elem_len = -1 ;
153154
154155 const char *clsName = " nsk/stress/jni/JNIter001" ;
155156 const char *name=" setpass" ;
@@ -162,40 +163,42 @@ Java_nsk_stress_jni_JNIter001_jnistress1(JNIEnv *env, jobject jobj, jstring jstr
162163
163164 env->MonitorEnter (jobj); CE
164165 if (!index) {
165- javachars = (JCHAR_ARRAY *)malloc ( sizeof (JCHAR_ARRAY));
166- javachars->str = (const jchar **)malloc ( nstr*sizeof (const jchar *));
167- javachars->checkstr = (char **)malloc ( nstr*sizeof (char *));
168- javachars->size = (int *)malloc ( nstr*sizeof (int ));
166+ javachars = (JCHAR_ARRAY *)c_malloc (env, sizeof (JCHAR_ARRAY));
167+ javachars->str = (const jchar **)c_malloc (env, nstr*sizeof (const jchar *));
168+ javachars->checkstr = (char **)c_malloc (env, nstr*sizeof (char *));
169+ javachars->size = (int *)c_malloc (env, nstr*sizeof (int ));
169170 for (j=0 ;j<nstr;j++)
170- javachars->checkstr [j] = (char *)malloc ( DIGESTLENGTH*sizeof (char ));
171+ javachars->checkstr [j] = (char *)c_malloc (env, DIGESTLENGTH*sizeof (char ));
171172 }
172173 for (j=0 ;j<DIGESTLENGTH;j++) {
173174 digest[j]=0 ;
174175 }
175176 javachars->str [index] = env->GetStringChars (jstr,0 ); CE
176177 javachars->size [index] = env->GetStringUTFLength (jstr); CE
177- len += javachars->size [index];
178- elem = (char *) malloc (javachars->size [index]*sizeof (char ));
179- for (j=0 ; j < javachars->size [index]; j++) {
178+ elem_len = javachars->size [index];
179+ len += elem_len;
180+ elem = (char *) c_malloc (env, elem_len*sizeof (char ));
181+ for (j=0 ; j < elem_len; j++) {
180182 elem[j] = (char ) javachars->str [index][j];
181183 }
184+
182185 // memcpy(digest, elem, javachars->size[index]);
183- for (j=0 ;j<javachars-> size [index] ; j++) {
186+ for (j=0 ;j<elem_len ; j++) {
184187 digest[j % DIGESTLENGTH]+=elem[j];
185188 }
186189 memcpy (javachars->checkstr [index++],digest,DIGESTLENGTH);
187190 if (index%printperiod==0 ) {
188- printf (" Check string sum for thread %s is " ,elem);
191+ printf (" Check string sum for thread %.* s is " , elem_len, elem);
189192 for (j=0 ;j<DIGESTLENGTH;j++)
190193 printf (" %02x" , digest[j]);
191194 printf (" \n " );
192195 }
193196 free (elem);
194197 if (index==nstr) {
195198 printf (" JNI Unicode strings memory=%ld\n " ,len);
196- tmpstr=env->NewString (javachars->str [index-1 ],javachars-> size [index- 1 ] ); CE
199+ tmpstr=env->NewString (javachars->str [index-1 ],elem_len ); CE
197200 for (j=0 ; j<nstr; j++) {
198- elem = (char *) malloc ( javachars->size [j]*sizeof (char ));
201+ elem = (char *) c_malloc (env, javachars->size [j]*sizeof (char ));
199202 for (i=0 ; i < javachars->size [j]; i++) {
200203 elem[i] = (char ) javachars->str [j][i];
201204 }
@@ -239,7 +242,7 @@ Java_nsk_stress_jni_JNIter001_jnistress1(JNIEnv *env, jobject jobj, jstring jstr
239242 return (tmpstr);
240243 }
241244 env->MonitorExit (jobj); CE
242- return (env->NewString (javachars->str [index-1 ],javachars-> size [index- 1 ] ));
245+ return (env->NewString (javachars->str [index-1 ],elem_len ));
243246}
244247
245248#ifdef __cplusplus
0 commit comments