static VALUE mTokyoMessenger_addint(VALUE vself, VALUE vkey, int inum){ TCRDB *db = mTokyoMessenger_getdb(vself); vkey = StringValueEx(vkey); inum = tcrdbaddint(db, RSTRING_PTR(vkey), RSTRING_LEN(vkey), inum); return inum == INT_MIN ? Qnil : INT2NUM(inum); }
/* addint */ JNIEXPORT jint JNICALL Java_tokyotyrant_TCRDB_addint (JNIEnv *env, jobject self, jbyteArray pkey, jint num){ if(!pkey){ throwillarg(env); return 0; } TCRDB *tcrdb = (TCRDB *)(intptr_t)(*env)->GetLongField(env, self, tcrdb_fid_ptr); jboolean ick; jbyte *kbuf = (*env)->GetByteArrayElements(env, pkey, &ick); if(!kbuf){ throwoutmem(env); return 0; } int ksiz = (*env)->GetArrayLength(env, pkey); num = tcrdbaddint(tcrdb, kbuf, ksiz, num); if(ick) (*env)->ReleaseByteArrayElements(env, pkey, kbuf, JNI_ABORT); return num; }