root / trunk / data / javasqlite / null16.diff
| Revision 184, 2.2 kB (checked in by saurik, 8 months ago) |
|---|
-
native/sqlite_jni.c
diff -ru javasqlite-20080130/native/sqlite_jni.c javasqlite-20080130+iPhone/native/sqlite_jni.c
old new 3360 3360 jsize len16; 3361 3361 const jchar *sql16, *tail = 0; 3362 3362 int ret; 3363 int i; 3364 jchar *sql2; 3363 3365 3364 3366 if (!h) { 3365 3367 throwclosed(env); … … 3385 3387 } 3386 3388 h->env = env; 3387 3389 sql16 = (*env)->GetStringChars(env, sql, 0); 3390 sql2 = malloc(len16 + sizeof(jchar)); 3391 memcpy(sql2, sql16, len16); 3392 sql2[len16 / sizeof(jchar)] = '\0'; 3393 (*env)->ReleaseStringChars(env, sql, sql16); 3388 3394 #if HAVE_SQLITE3_PREPARE16_V2 3389 ret = sqlite3_prepare16_v2((sqlite3 *) h->sqlite, sql 16, len16,3395 ret = sqlite3_prepare16_v2((sqlite3 *) h->sqlite, sql2, len16, 3390 3396 (sqlite3_stmt **) &svm, (const void **) &tail); 3391 3397 #else 3392 ret = sqlite3_prepare16((sqlite3 *) h->sqlite, sql 16, len16,3398 ret = sqlite3_prepare16((sqlite3 *) h->sqlite, sql2, len16, 3393 3399 (sqlite3_stmt **) &svm, (const void **) &tail); 3394 3400 #endif 3395 3401 if (ret != SQLITE_OK) { … … 3401 3407 if (ret != SQLITE_OK) { 3402 3408 const char *err = sqlite3_errmsg(h->sqlite); 3403 3409 3404 (*env)->ReleaseStringChars(env, sql, sql16);3410 free(sql2); 3405 3411 setstmterr(env, stmt, ret); 3412 printf("%s\n", err); 3406 3413 throwex(env, err ? err : "error in prepare"); 3407 3414 return; 3408 3415 } 3409 3416 if (!svm) { 3410 (*env)->ReleaseStringChars(env, sql, sql16);3417 free(sql2); 3411 3418 return; 3412 3419 } 3413 len16 = len16 + sizeof (jchar) - ((char *) tail - (char *) sql 16);3420 len16 = len16 + sizeof (jchar) - ((char *) tail - (char *) sql2); 3414 3421 if (len16 < sizeof (jchar)) { 3415 3422 len16 = sizeof (jchar); 3416 3423 } 3417 3424 v = malloc(sizeof (hvm) + len16); 3418 3425 if (!v) { 3419 (*env)->ReleaseStringChars(env, sql, sql16);3426 free(sql2); 3420 3427 sqlite3_finalize((sqlite3_stmt *) svm); 3421 3428 throwoom(env, "unable to get SQLite handle"); 3422 3429 return; … … 3432 3439 memcpy(v->tail, tail, len16); 3433 3440 len16 /= sizeof (jchar); 3434 3441 ((jchar *) v->tail)[len16 - 1] = 0; 3435 (*env)->ReleaseStringChars(env, sql, sql16);3442 free(sql2); 3436 3443 v->hh.sqlite = 0; 3437 3444 v->hh.haveutf = h->haveutf; 3438 3445 v->hh.ver = h->ver;
Note: See TracBrowser
for help on using the browser.
