java_DbLock.c
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 1997, 1998, 1999, 2000
  5.  * Sleepycat Software.  All rights reserved.
  6.  */
  7. #include "db_config.h"
  8. #ifndef lint
  9. static const char revid[] = "$Id: java_DbLock.c,v 11.4 2000/11/30 00:58:39 ubell Exp $";
  10. #endif /* not lint */
  11. #include <jni.h>
  12. #include <stdlib.h>
  13. #include <string.h>
  14. #include "db.h"
  15. #include "java_util.h"
  16. #include "com_sleepycat_db_DbLock.h"
  17. JNIEXPORT void JNICALL Java_com_sleepycat_db_DbLock_put
  18.   (JNIEnv *jnienv, jobject jthis, /*DbEnv*/ jobject env)
  19. {
  20. int err;
  21. DB_LOCK *dblock = get_DB_LOCK(jnienv, jthis);
  22. DB_ENV *dbenv = get_DB_ENV(jnienv, env);
  23. if (!verify_non_null(jnienv, dbenv))
  24. return;
  25. if (!verify_non_null(jnienv, dblock))
  26. return;
  27. err = lock_put(dbenv, dblock);
  28. if (verify_return(jnienv, err, 0)) {
  29. /* After a successful put, the DbLock can no longer
  30.  * be used, so we release the storage related to it
  31.  * (allocated in DbEnv.lock_get() or lock_tget()).
  32.  */
  33. free(dblock);
  34. set_private_dbobj(jnienv, name_DB_LOCK, jthis, 0);
  35. }
  36. }
  37. JNIEXPORT void JNICALL Java_com_sleepycat_db_DbLock_finalize
  38.   (JNIEnv *jnienv, jobject jthis)
  39. {
  40. DB_LOCK *dblock = get_DB_LOCK(jnienv, jthis);
  41. if (dblock) {
  42. /* Free any data related to DB_LOCK here */
  43. free(dblock);
  44. }
  45. set_private_dbobj(jnienv, name_DB_LOCK, jthis, 0); /* paranoia */
  46. }