]> git.pld-linux.org Git - packages/db4.4.git/blobdiff - patch.4.4.20.3
- updated URLs
[packages/db4.4.git] / patch.4.4.20.3
diff --git a/patch.4.4.20.3 b/patch.4.4.20.3
new file mode 100644 (file)
index 0000000..fbc75b8
--- /dev/null
@@ -0,0 +1,49 @@
+*** db/db_cam.c.orig   2006-01-11 03:19:21.000000000 +1100
+--- db/db_cam.c        2006-03-01 13:59:01.000000000 +1100
+***************
+*** 579,589 ****
+           flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
+               if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
+                       return (ret);
+!              if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
+                       return (ret);
+  
+!              switch (ret =
+!                  opd->c_am_get(opd, key, data, flags, NULL)) {
+               case 0:
+                       goto done;
+               case DB_NOTFOUND:
+--- 579,590 ----
+           flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
+               if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
+                       return (ret);
+!              if (F_ISSET(dbc_arg, DBC_TRANSIENT))
+!                      opd = cp->opd;
+!              else if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
+                       return (ret);
+  
+!              switch (ret = opd->c_am_get(opd, key, data, flags, NULL)) {
+               case 0:
+                       goto done;
+               case DB_NOTFOUND:
+***************
+*** 596,607 ****
+--- 597,614 ----
+                               if ((ret = __db_c_close(opd)) != 0)
+                                       goto err;
+                               opd = NULL;
++                              if (F_ISSET(dbc_arg, DBC_TRANSIENT))
++                                      cp->opd = NULL;
+                               break;
+                       }
+                       goto err;
+               default:
+                       goto err;
+               }
++      } else if (cp->opd != NULL && F_ISSET(dbc_arg, DBC_TRANSIENT)) {
++              if ((ret = __db_c_close(cp->opd)) != 0)
++                      goto err;
++              cp->opd = NULL;
+       }
+  
+       /*
This page took 0.090957 seconds and 4 git commands to generate.