X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=tests%2Fregression%2Fnative%2Ftestarguments.c;h=8c95c8a697aa66acc75fe46c6c6723717ad0d8d0;hb=1e6a75a4a4b61583a8869ebe8752120764ca2aef;hp=4d48aa093b3d0f32b16f1ade47003248ddfb7314;hpb=5a320f78b1ccb1d20c79c760201574ce29b8e5f9;p=cacao.git diff --git a/tests/regression/native/testarguments.c b/tests/regression/native/testarguments.c index 4d48aa093..8c95c8a69 100644 --- a/tests/regression/native/testarguments.c +++ b/tests/regression/native/testarguments.c @@ -1,9 +1,7 @@ /* tests/regression/native/testarguments.c - tests argument passing - Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel, - C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring, - E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, - TU Wien + Copyright (C) 1996-2005, 2006, 2007, 2008 + CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO This file is part of CACAO. @@ -22,61 +20,43 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - $Id: testarguments.c 8123 2007-06-20 23:50:55Z michi $ - */ #include "config.h" #include +#include -#include "native/jni.h" +#include "native/jni.hpp" JNIEXPORT jobject JNICALL Java_testarguments_adr(JNIEnv *env, jclass clazz, jint i) { - switch (i) { - case 1: - return (jobject) 0x11111111; - case 2: - return (jobject) 0x22222222; - case 3: - return (jobject) 0x33333333; - case 4: - return (jobject) 0x44444444; - case 5: - return (jobject) 0x55555555; - case 6: - return (jobject) 0x66666666; - case 7: - return (jobject) 0x77777777; - case 8: - return (jobject) 0x88888888; - case 9: - return (jobject) 0x99999999; - case 10: - return (jobject) 0xaaaaaaaa; - case 11: - return (jobject) 0xbbbbbbbb; - case 12: - return (jobject) 0xcccccccc; - case 13: - return (jobject) 0xdddddddd; - case 14: - return (jobject) 0xeeeeeeee; - case 15: - return (jobject) 0xffffffff; - } + intptr_t p; + + p = 0x11111111 * ((intptr_t) i); + +#if defined(ENABLE_HANDLES) + return (*env)->NewLocalRef(env, &p); +#else + return (jobject) p; +#endif } JNIEXPORT void JNICALL Java_testarguments_np(JNIEnv *env, jclass clazz, jobject o) { +#if defined(ENABLE_HANDLES) + intptr_t p = *((intptr_t *) o); +#else + intptr_t p = (intptr_t) o; +#endif + #if SIZEOF_VOID_P == 8 - printf(" 0x%lx", (long) o); + printf(" 0x%lx", (long) p); #else - printf(" 0x%x", (int) o); + printf(" 0x%x", (int) p); #endif fflush(stdout); @@ -203,10 +183,22 @@ JNIEXPORT void JNICALL Java_testarguments_nasub(JNIEnv *env, jclass clazz, jobje { jmethodID mid; -#if SIZEOF_VOID_P == 8 - printf("java-native: 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx\n", (long) a, (long) b, (long) c, (long) d, (long) e, (long) f, (long) g, (long) h, (long) i, (long) j, (long) k, (long) l, (long) m, (long) n, (long) o); +#if defined(ENABLE_HANDLES) + +# if SIZEOF_VOID_P == 8 + printf("java-native: 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx\n", *((long*) a), *((long*) b), *((long*) c), *((long*) d), *((long*) e), *((long*) f), *((long*) g), *((long*) h), *((long*) i), *((long*) j), *((long*) k), *((long*) l), *((long*) m), *((long*) n), *((long*) o)); +# else + printf("java-native: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", *((int*) a), *((int*) b), *((int*) c), *((int*) d), *((int*) e), *((int*) f), *((int*) g), *((int*) h), *((int*) i), *((int*) j), *((int*) k), *((int*) l), *((int*) m), *((int*) n), *((int*) o)); +# endif + #else + +# if SIZEOF_VOID_P == 8 + printf("java-native: 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx\n", (long) a, (long) b, (long) c, (long) d, (long) e, (long) f, (long) g, (long) h, (long) i, (long) j, (long) k, (long) l, (long) m, (long) n, (long) o); +# else printf("java-native: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", (int) a, (int) b, (int) c, (int) d, (int) e, (int) f, (int) g, (int) h, (int) i, (int) j, (int) k, (int) l, (int) m, (int) n, (int) o); +# endif + #endif fflush(stdout);