SOURCES: patch.4.2.52.3 (NEW), patch.4.2.52.4 (NEW) - upstream fixes

arekm arekm at pld-linux.org
Wed Jul 27 21:10:25 CEST 2005


Author: arekm                        Date: Wed Jul 27 19:10:25 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- upstream fixes

---- Files affected:
SOURCES:
   patch.4.2.52.3 (NONE -> 1.1)  (NEW), patch.4.2.52.4 (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/patch.4.2.52.3
diff -u /dev/null SOURCES/patch.4.2.52.3:1.1
--- /dev/null	Wed Jul 27 21:10:25 2005
+++ SOURCES/patch.4.2.52.3	Wed Jul 27 21:10:20 2005
@@ -0,0 +1,247 @@
+--- java/src/com/sleepycat/db/DbEnv.java	2003-12-03 16:26:27.000000000 -0500
++++ java/src/com/sleepycat/db/DbEnv.java	2004-03-18 15:15:42.000000000 -0500
+@@ -61,7 +61,7 @@
+     // Internally, the JNI layer creates a global reference to each DbEnv,
+     // which can potentially be different to this.  We keep a copy here so
+     // we can clean up after destructors.
+-    private Object dbenv_ref;
++    private long dbenv_ref;
+     private DbAppDispatch app_dispatch_handler;
+     private DbEnvFeedbackHandler env_feedback_handler;
+     private DbErrorHandler error_handler;
+@@ -94,7 +94,7 @@
+     void cleanup() {
+         swigCPtr = 0;
+         db_java.deleteRef0(dbenv_ref);
+-        dbenv_ref = null;
++        dbenv_ref = 0L;
+     }
+ 
+ 
+--- java/src/com/sleepycat/db/Db.java	2003-12-03 16:26:25.000000000 -0500
++++ java/src/com/sleepycat/db/Db.java	2004-03-18 15:15:55.000000000 -0500
+@@ -57,7 +57,7 @@
+     // Internally, the JNI layer creates a global reference to each Db,
+     // which can potentially be different to this.  We keep a copy here so
+     // we can clean up after destructors.
+-    private Object db_ref;
++    private long db_ref;
+     private DbEnv dbenv;
+     private boolean private_dbenv;
+     private DbAppendRecno append_recno_handler;
+@@ -84,7 +84,7 @@
+     private void cleanup() {
+         swigCPtr = 0;
+         db_java.deleteRef0(db_ref);
+-        db_ref = null;
++        db_ref = 0L;
+         if (private_dbenv) {
+             dbenv.cleanup();
+         }
+--- java/src/com/sleepycat/db/db_java.java	2003-12-03 16:10:54.000000000 -0500
++++ java/src/com/sleepycat/db/db_java.java	2004-03-18 15:17:24.000000000 -0500
+@@ -14,15 +14,15 @@
+     db_javaJNI.DbEnv_lock_vec(DbEnv.getCPtr(dbenv), locker, flags, list, offset, nlist);
+   }
+ 
+-   static Object initDbEnvRef0(DbEnv self, Object handle) {
++   static long initDbEnvRef0(DbEnv self, Object handle) {
+     return db_javaJNI.initDbEnvRef0(DbEnv.getCPtr(self), handle);
+   }
+ 
+-   static Object initDbRef0(Db self, Object handle) {
++   static long initDbRef0(Db self, Object handle) {
+     return db_javaJNI.initDbRef0(Db.getCPtr(self), handle);
+   }
+ 
+-   static void deleteRef0(Object ref) {
++   static void deleteRef0(long ref) {
+     db_javaJNI.deleteRef0(ref);
+   }
+ 
+--- java/src/com/sleepycat/db/db_javaJNI.java	2003-12-03 16:10:55.000000000 -0500
++++ java/src/com/sleepycat/db/db_javaJNI.java	2004-03-18 15:16:18.000000000 -0500
+@@ -45,9 +45,9 @@
+ 	static native final void initialize();
+ 
+   public final static native void DbEnv_lock_vec(long jarg1, int jarg2, int jarg3, DbLockRequest[] jarg4, int jarg5, int jarg6) throws DbException;
+-   final static native Object initDbEnvRef0(long jarg1, Object jarg2);
+-   final static native Object initDbRef0(long jarg1, Object jarg2);
+-   final static native void deleteRef0(Object jarg1);
++   final static native long initDbEnvRef0(long jarg1, Object jarg2);
++   final static native long initDbRef0(long jarg1, Object jarg2);
++   final static native void deleteRef0(long jarg1);
+    final static native long getDbEnv0(long jarg1);
+   public final static native long new_Db(long jarg1, int jarg2) throws DbException;
+   public final static native void Db_associate(long jarg1, long jarg2, long jarg3, DbSecondaryKeyCreate jarg4, int jarg5) throws DbException;
+--- libdb_java/db_java.i	2003-11-17 15:00:52.000000000 -0500
++++ libdb_java/db_java.i	2004-03-18 09:21:14.000000000 -0500
+@@ -53,7 +53,7 @@
+ 	// Internally, the JNI layer creates a global reference to each DbEnv,
+ 	// which can potentially be different to this.  We keep a copy here so
+ 	// we can clean up after destructors.
+-	private Object dbenv_ref;
++	private long dbenv_ref;
+ 	private DbAppDispatch app_dispatch_handler;
+ 	private DbEnvFeedbackHandler env_feedback_handler;
+ 	private DbErrorHandler error_handler;
+@@ -76,7 +76,7 @@
+ 	void cleanup() {
+ 		swigCPtr = 0;
+ 		db_java.deleteRef0(dbenv_ref);
+-		dbenv_ref = null;
++		dbenv_ref = 0L;
+ 	}
+ 
+ 	public synchronized void close(int flags) throws DbException {
+@@ -220,7 +220,7 @@
+ 	// Internally, the JNI layer creates a global reference to each Db,
+ 	// which can potentially be different to this.  We keep a copy here so
+ 	// we can clean up after destructors.
+-	private Object db_ref;
++	private long db_ref;
+ 	private DbEnv dbenv;
+ 	private boolean private_dbenv;
+ 	private DbAppendRecno append_recno_handler;
+@@ -245,7 +245,7 @@
+ 	private void cleanup() {
+ 		swigCPtr = 0;
+ 		db_java.deleteRef0(db_ref);
+-		db_ref = null;
++		db_ref = 0L;
+ 		if (private_dbenv)
+ 			dbenv.cleanup();
+ 		dbenv = null;
+@@ -503,46 +503,42 @@
+ 	}
+ %}
+ 
+-%native(initDbEnvRef0) jobject initDbEnvRef0(DB_ENV *self, void *handle);
+-%native(initDbRef0) jobject initDbRef0(DB *self, void *handle);
+-%native(deleteRef0) void deleteRef0(jobject ref);
++%native(initDbEnvRef0) jlong initDbEnvRef0(DB_ENV *self, void *handle);
++%native(initDbRef0) jlong initDbRef0(DB *self, void *handle);
++%native(deleteRef0) void deleteRef0(jlong ref);
+ %native(getDbEnv0) DB_ENV *getDbEnv0(DB *self);
+ 
+ %{
+-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
+     JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+ 	DB_ENV *self = *(DB_ENV **)&jarg1;
++	jlong ret;
+ 	COMPQUIET(jcls, NULL);
+ 
+ 	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+ 	self->set_errpfx(self, (const char*)self);
+-	return (jobject)DB_ENV_INTERNAL(self);
++	*(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self);
++	return (ret);
+ }
+ 
+-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
+     JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+ 	DB *self = *(DB **)&jarg1;
++	jlong ret;
+ 	COMPQUIET(jcls, NULL);
+ 
+ 	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+-	return (jobject)DB_INTERNAL(self);
++	*(jobject *)&ret = (jobject)DB_INTERNAL(self);
++	return (ret);
+ }
+ 
+ JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
+-    JNIEnv *jenv, jclass jcls, jobject jref) {
+-	COMPQUIET(jcls, NULL);
+-
+-	if (jref != NULL)
+-		(*jenv)->DeleteGlobalRef(jenv, jref);
+-}
+-
+-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
+     JNIEnv *jenv, jclass jcls, jlong jarg1) {
+-	DB *self = *(DB **)&jarg1;
++	jobject jref = *(jobject *)&jarg1;
+ 	COMPQUIET(jcls, NULL);
+-	COMPQUIET(jenv, NULL);
+ 
+-	return (jobject)DB_INTERNAL(self);
++	if (jref != 0L)
++		(*jenv)->DeleteGlobalRef(jenv, jref);
+ }
+ 
+ JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
+@@ -554,7 +550,7 @@
+ 	COMPQUIET(jcls, NULL);
+ 
+ 	*(DB_ENV **)&env_cptr = self->dbenv;
+-	return env_cptr;
++	return (env_cptr);
+ }
+ 
+ JNIEXPORT jboolean JNICALL
+--- libdb_java/db_java_wrap.c	2003-12-03 16:10:36.000000000 -0500
++++ libdb_java/db_java_wrap.c	2004-03-18 12:18:58.000000000 -0500
+@@ -1192,40 +1192,36 @@
+ }
+ 
+ 
+-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
+     JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+ 	DB_ENV *self = *(DB_ENV **)&jarg1;
++	jlong ret;
+ 	COMPQUIET(jcls, NULL);
+ 
+ 	DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+ 	self->set_errpfx(self, (const char*)self);
+-	return (jobject)DB_ENV_INTERNAL(self);
++	*(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self);
++	return (ret);
+ }
+ 
+-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
+     JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
+ 	DB *self = *(DB **)&jarg1;
++	jlong ret;
+ 	COMPQUIET(jcls, NULL);
+ 
+ 	DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
+-	return (jobject)DB_INTERNAL(self);
++	*(jobject *)&ret = (jobject)DB_INTERNAL(self);
++	return (ret);
+ }
+ 
+ JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
+-    JNIEnv *jenv, jclass jcls, jobject jref) {
+-	COMPQUIET(jcls, NULL);
+-
+-	if (jref != NULL)
+-		(*jenv)->DeleteGlobalRef(jenv, jref);
+-}
+-
+-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
+     JNIEnv *jenv, jclass jcls, jlong jarg1) {
+-	DB *self = *(DB **)&jarg1;
++	jobject jref = *(jobject *)&jarg1;
+ 	COMPQUIET(jcls, NULL);
+-	COMPQUIET(jenv, NULL);
+ 
+-	return (jobject)DB_INTERNAL(self);
++	if (jref != 0L)
++		(*jenv)->DeleteGlobalRef(jenv, jref);
+ }
+ 
+ JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
+@@ -1237,7 +1233,7 @@
+ 	COMPQUIET(jcls, NULL);
+ 
+ 	*(DB_ENV **)&env_cptr = self->dbenv;
+-	return env_cptr;
++	return (env_cptr);
+ }
+ 
+ JNIEXPORT jboolean JNICALL

================================================================
Index: SOURCES/patch.4.2.52.4
diff -u /dev/null SOURCES/patch.4.2.52.4:1.1
--- /dev/null	Wed Jul 27 21:10:25 2005
+++ SOURCES/patch.4.2.52.4	Wed Jul 27 21:10:20 2005
@@ -0,0 +1,36 @@
+*** btree/bt_rec.c.orig	Tue Mar 22 09:41:49 2005
+--- btree/bt_rec.c	Tue Mar 22 09:42:11 2005
+***************
+*** 222,228 ****
+  		 * previous-page pointer updated to our new page.  The next
+  		 * page must exist because we're redoing the operation.
+  		 */
+! 		if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
+  			if ((ret =
+  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
+  				ret = __db_pgerr(file_dbp, argp->npgno, ret);
+--- 222,228 ----
+  		 * previous-page pointer updated to our new page.  The next
+  		 * page must exist because we're redoing the operation.
+  		 */
+! 		if (!rootsplit && argp->npgno != PGNO_INVALID) {
+  			if ((ret =
+  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
+  				ret = __db_pgerr(file_dbp, argp->npgno, ret);
+***************
+*** 294,300 ****
+  		 * possible that the next-page never existed, we ignore it as
+  		 * if there's nothing to undo.
+  		 */
+! 		if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
+  			if ((ret =
+  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
+  				np = NULL;
+--- 294,300 ----
+  		 * possible that the next-page never existed, we ignore it as
+  		 * if there's nothing to undo.
+  		 */
+! 		if (!rootsplit && argp->npgno != PGNO_INVALID) {
+  			if ((ret =
+  			    __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
+  				np = NULL;
================================================================



More information about the pld-cvs-commit mailing list