msgbase.c: change to new API
authorArt Cancro <ajc@citadel.org>
Thu, 17 Aug 2023 21:11:39 +0000 (12:11 -0900)
committerArt Cancro <ajc@citadel.org>
Thu, 17 Aug 2023 21:11:39 +0000 (12:11 -0900)
citadel/server/msgbase.c

index d6dc230f8c4d7dfe6a5a628ee6961b6701637afb..edde4dc015468711de3df2e8f74b8823e719e2d8 100644 (file)
@@ -612,7 +612,6 @@ int CtdlForEachMessage(int mode, long ref, char *search_string,
 {
        int a, i, j;
        struct visit vbuf;
-       struct cdbdata *cdbfr;
        long *msglist = NULL;
        int num_msgs = 0;
        int num_processed = 0;
@@ -652,18 +651,13 @@ int CtdlForEachMessage(int mode, long ref, char *search_string,
        }
 
        // Load the message list
-       cdbfr = cdb_fetch(CDB_MSGLISTS, &CC->room.QRnumber, sizeof(long));
-       if (cdbfr == NULL) {
+       num_msgs = CtdlFetchMsgList(CC->room.QRnumber, &msglist);
+       if (num_msgs <= 0) {
+               if (msglist) free(msglist);
                if (need_to_free_re) regfree(&re);
                return 0;       // No messages at all?  No further action.
        }
 
-       msglist = (long *) cdbfr->ptr;
-       num_msgs = cdbfr->len / sizeof(long);
-
-       cdbfr->ptr = NULL;      // clear this so that cdb_free() doesn't free it
-       cdb_free(cdbfr);        // we own this memory now
-
        /*
         * Now begin the traversal.
         */
@@ -2240,11 +2234,9 @@ int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newms
                return(ERROR + ROOM_NOT_FOUND);
        }
 
-
        msgs_to_be_merged = malloc(sizeof(long) * num_newmsgs);
        num_msgs_to_be_merged = 0;
 
-
        cdbfr = cdb_fetch(CDB_MSGLISTS, &CC->room.QRnumber, sizeof(long));
        if (cdbfr == NULL) {
                msglist = NULL;
@@ -2257,7 +2249,6 @@ int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newms
                cdb_free(cdbfr);
        }
 
-
        /* Create a list of msgid's which were supplied by the caller, but do
         * not already exist in the target room.  It is absolutely taboo to
         * have more than one reference to the same message in a room.