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);
}
Example #2
0
/* 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;
}