Fixed update-problem.
authorSebastian Hammer <quinn@indexdata.com>
Wed, 6 Dec 1995 15:48:44 +0000 (15:48 +0000)
committerSebastian Hammer <quinn@indexdata.com>
Wed, 6 Dec 1995 15:48:44 +0000 (15:48 +0000)
isam/isam.c
isam/memory.c
isam/memory.h

index 6beb3dc..248a944 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: isam.c,v $
- * Revision 1.16  1995-12-06 14:48:26  quinn
+ * Revision 1.17  1995-12-06 15:48:44  quinn
+ * Fixed update-problem.
+ *
+ * Revision 1.16  1995/12/06  14:48:26  quinn
  * Fixed some strange bugs.
  *
  * Revision 1.15  1995/12/06  09:59:45  quinn
@@ -470,7 +473,7 @@ void is_pt_free(ISPT ip)
  */
 int is_readkey(ISPT ip, void *buf)
 {
-    return is_m_read_record(&ip->tab, buf);
+    return is_m_read_record(&ip->tab, buf, 0);
 }    
 
 int is_numkeys(ISPT ip)
index 475b5fc..afb7887 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: memory.c,v $
- * Revision 1.8  1995-12-06 14:48:27  quinn
+ * Revision 1.9  1995-12-06 15:48:46  quinn
+ * Fixed update-problem.
+ *
+ * Revision 1.8  1995/12/06  14:48:27  quinn
  * Fixed some strange bugs.
  *
  * Revision 1.7  1995/12/06  09:59:46  quinn
@@ -337,7 +340,7 @@ int is_m_peek_record(is_mtable *tab, void *rec)
     return 1;
 }
 
-int is_m_read_record(is_mtable *tab, void *buf)
+int is_m_read_record(is_mtable *tab, void *buf, int keep)
 {
     is_mbuf *mbuf;
 
@@ -350,7 +353,7 @@ int is_m_read_record(is_mtable *tab, void *buf)
     {
        if (!mbuf->next) /* end of mblock */
        {
-           if (tab->cur_mblock->state == IS_MBSTATE_CLEAN &&
+           if (!keep && tab->cur_mblock->state == IS_MBSTATE_CLEAN &&
                tab->cur_mblock->diskpos > 0)
            {
                xfree_mbufs(tab->cur_mblock->data);
@@ -388,7 +391,7 @@ int is_m_seek_record(is_mtable *tab, const void *rec)
 
     for (;;)
     {
-       if (is_m_read_record(tab, &peek) <= 0)
+       if (is_m_read_record(tab, &peek, 1) <= 0)
            return 1;
        if ((rs = (*tab->is->cmp)(peek, rec)) > 0)
        {
index 2f92ee0..d082556 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: memory.h,v $
- * Revision 1.3  1994-09-28 16:58:33  quinn
+ * Revision 1.4  1995-12-06 15:48:47  quinn
+ * Fixed update-problem.
+ *
+ * Revision 1.3  1994/09/28  16:58:33  quinn
  * Small mod.
  *
  * Revision 1.2  1994/09/27  20:03:52  quinn
@@ -90,7 +93,7 @@ void is_m_rewind(is_mtable *tab);
 void is_m_replace_record(is_mtable *tab, const void *rec);
 int is_m_write_record(is_mtable *tab, const void *rec);
 void is_m_unread_record(is_mtable *tab);
-int is_m_read_record(is_mtable *tab, void *buf);
+int is_m_read_record(is_mtable *tab, void *buf, int keep);
 int is_m_seek_record(is_mtable *tab, const void *rec);
 void is_m_delete_record(is_mtable *tab);
 int is_m_peek_record(is_mtable *tab, void *rec);