@@ -229,80 +229,98 @@ foo_get_native_jni_timings (JNIEnv *env, int count, jclass klass, jobject self,
229229 obj3 = (* env )-> NewObject (env , Object_class , Object_init );
230230
231231 start = current_time_millis ();
232- for (i = 0 ; i < count ; i ++ )
232+ for (i = 0 ; i < count ; i ++ ) {
233233 (* env )-> CallStaticVoidMethod (env , klass , Timing_StaticVoidMethod );
234+ (* env )-> ExceptionClear (env );
235+ }
234236 end = current_time_millis ();
235237
236238 jniTimes [0 ] = end - start ;
237239 _log ("# NativeTiming: foo/timing: static void method invoke: %10lli ms | average: %10f ms\n" ,
238240 jniTimes [0 ], jniTimes [0 ] / (double ) count );
239241
240242 start = current_time_millis ();
241- for (i = 0 ; i < count ; i ++ )
243+ for (i = 0 ; i < count ; i ++ ) {
242244 (* env )-> CallStaticIntMethod (env , klass , Timing_StaticIntMethod );
245+ (* env )-> ExceptionClear (env );
246+ }
243247 end = current_time_millis ();
244248
245249 jniTimes [1 ] = end - start ;
246250 _log ("# NativeTiming: foo/timing: static int method invoke: %10lli ms | average: %10f ms\n" ,
247251 jniTimes [1 ], jniTimes [1 ] / (double ) count );
248252
249253 start = current_time_millis ();
250- for (i = 0 ; i < count ; i ++ )
254+ for (i = 0 ; i < count ; i ++ ) {
251255 (* env )-> CallStaticObjectMethod (env , klass , Timing_StaticObjectMethod );
256+ (* env )-> ExceptionClear (env );
257+ }
252258 end = current_time_millis ();
253259
254260 jniTimes [2 ] = end - start ;
255261 _log ("# NativeTiming: foo/timing: static Object method invoke: %10lli ms | average: %10f ms\n" ,
256262 jniTimes [2 ], jniTimes [2 ] / (double ) count );
257263
258264 start = current_time_millis ();
259- for (i = 0 ; i < count ; i ++ )
265+ for (i = 0 ; i < count ; i ++ ) {
260266 (* env )-> CallVoidMethod (env , self , Timing_VirtualVoidMethod );
267+ (* env )-> ExceptionClear (env );
268+ }
261269 end = current_time_millis ();
262270
263271 jniTimes [3 ] = end - start ;
264272 _log ("# NativeTiming: foo/timing: virtual void method invoke: %10lli ms | average: %10f ms\n" ,
265273 jniTimes [3 ], jniTimes [3 ] / (double ) count );
266274
267275 start = current_time_millis ();
268- for (i = 0 ; i < count ; i ++ )
276+ for (i = 0 ; i < count ; i ++ ) {
269277 (* env )-> CallIntMethod (env , self , Timing_VirtualIntMethod );
278+ (* env )-> ExceptionClear (env );
279+ }
270280 end = current_time_millis ();
271281
272282 jniTimes [4 ] = end - start ;
273283 _log ("# NativeTiming: foo/timing: virtual int method invoke: %10lli ms | average: %10f ms\n" ,
274284 jniTimes [4 ], jniTimes [4 ] / (double ) count );
275285
276286 start = current_time_millis ();
277- for (i = 0 ; i < count ; i ++ )
287+ for (i = 0 ; i < count ; i ++ ) {
278288 (* env )-> CallObjectMethod (env , self , Timing_VirtualObjectMethod );
289+ (* env )-> ExceptionClear (env );
290+ }
279291 end = current_time_millis ();
280292
281293 jniTimes [5 ] = end - start ;
282294 _log ("# NativeTiming: foo/timing: virtual Object method invoke: %10lli ms | average: %10f ms\n" ,
283295 jniTimes [5 ], jniTimes [5 ] / (double ) count );
284296
285297 start = current_time_millis ();
286- for (i = 0 ; i < count ; i ++ )
298+ for (i = 0 ; i < count ; i ++ ) {
287299 (* env )-> CallNonvirtualVoidMethod (env , self , klass , Timing_FinalVoidMethod );
300+ (* env )-> ExceptionClear (env );
301+ }
288302 end = current_time_millis ();
289303
290304 jniTimes [6 ] = end - start ;
291305 _log ("# NativeTiming: foo/timing: final void method invoke: %10lli ms | average: %10f ms\n" ,
292306 jniTimes [6 ], jniTimes [6 ] / (double ) count );
293307
294308 start = current_time_millis ();
295- for (i = 0 ; i < count ; i ++ )
309+ for (i = 0 ; i < count ; i ++ ) {
296310 (* env )-> CallNonvirtualIntMethod (env , self , klass , Timing_FinalIntMethod );
311+ (* env )-> ExceptionClear (env );
312+ }
297313 end = current_time_millis ();
298314
299315 jniTimes [7 ] = end - start ;
300316 _log ("# NativeTiming: foo/timing: final int method invoke: %10lli ms | average: %10f ms\n" ,
301317 jniTimes [7 ], jniTimes [7 ] / (double ) count );
302318
303319 start = current_time_millis ();
304- for (i = 0 ; i < count ; i ++ )
320+ for (i = 0 ; i < count ; i ++ ) {
305321 (* env )-> CallNonvirtualObjectMethod (env , self , klass , Timing_FinalObjectMethod );
322+ (* env )-> ExceptionClear (env );
323+ }
306324 end = current_time_millis ();
307325
308326 jniTimes [8 ] = end - start ;
@@ -312,26 +330,32 @@ foo_get_native_jni_timings (JNIEnv *env, int count, jclass klass, jobject self,
312330
313331
314332 start = current_time_millis ();
315- for (i = 0 ; i < count ; i ++ )
333+ for (i = 0 ; i < count ; i ++ ) {
316334 (* env )-> CallStaticVoidMethod (env , klass , Timing_StaticVoidMethod1Args , obj1 );
335+ (* env )-> ExceptionClear (env );
336+ }
317337 end = current_time_millis ();
318338
319339 jniTimes [9 ] = end - start ;
320340 _log ("# NativeTiming: foo/timing: static void o1 method invoke: %10lli ms | average: %10f ms\n" ,
321341 jniTimes [9 ], jniTimes [9 ] / (double ) count );
322342
323343 start = current_time_millis ();
324- for (i = 0 ; i < count ; i ++ )
344+ for (i = 0 ; i < count ; i ++ ) {
325345 (* env )-> CallStaticVoidMethod (env , klass , Timing_StaticVoidMethod2Args , obj1 , obj2 );
346+ (* env )-> ExceptionClear (env );
347+ }
326348 end = current_time_millis ();
327349
328350 jniTimes [10 ] = end - start ;
329351 _log ("# NativeTiming: foo/timing: static void o2 method invoke: %10lli ms | average: %10f ms\n" ,
330352 jniTimes [10 ], jniTimes [10 ] / (double ) count );
331353
332354 start = current_time_millis ();
333- for (i = 0 ; i < count ; i ++ )
355+ for (i = 0 ; i < count ; i ++ ) {
334356 (* env )-> CallStaticVoidMethod (env , klass , Timing_StaticVoidMethod3Args , obj1 , obj2 , obj3 );
357+ (* env )-> ExceptionClear (env );
358+ }
335359 end = current_time_millis ();
336360
337361 jniTimes [11 ] = end - start ;
@@ -341,26 +365,32 @@ foo_get_native_jni_timings (JNIEnv *env, int count, jclass klass, jobject self,
341365
342366
343367 start = current_time_millis ();
344- for (i = 0 ; i < count ; i ++ )
368+ for (i = 0 ; i < count ; i ++ ) {
345369 (* env )-> CallStaticVoidMethod (env , klass , Timing_StaticVoidMethod1IArgs , 42 );
370+ (* env )-> ExceptionClear (env );
371+ }
346372 end = current_time_millis ();
347373
348374 jniTimes [12 ] = end - start ;
349375 _log ("# NativeTiming: foo/timing: static void i1 method invoke: %10lli ms | average: %10f ms\n" ,
350376 jniTimes [12 ], jniTimes [12 ] / (double ) count );
351377
352378 start = current_time_millis ();
353- for (i = 0 ; i < count ; i ++ )
379+ for (i = 0 ; i < count ; i ++ ) {
354380 (* env )-> CallStaticVoidMethod (env , klass , Timing_StaticVoidMethod2IArgs , 42 , 42 );
381+ (* env )-> ExceptionClear (env );
382+ }
355383 end = current_time_millis ();
356384
357385 jniTimes [13 ] = end - start ;
358386 _log ("# NativeTiming: foo/timing: static void i2 method invoke: %10lli ms | average: %10f ms\n" ,
359387 jniTimes [13 ], jniTimes [13 ] / (double ) count );
360388
361389 start = current_time_millis ();
362- for (i = 0 ; i < count ; i ++ )
390+ for (i = 0 ; i < count ; i ++ ) {
363391 (* env )-> CallStaticVoidMethod (env , klass , Timing_StaticVoidMethod3IArgs , 42 , 42 , 42 );
392+ (* env )-> ExceptionClear (env );
393+ }
364394 end = current_time_millis ();
365395
366396 jniTimes [14 ] = end - start ;
0 commit comments