Changeset: a0b184665de2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a0b184665de2
Modified Files:
        monetdb5/modules/mal/tokenizer.c
Branch: Jan2014
Log Message:

Avoid resource leaks


diffs (60 lines):

diff --git a/monetdb5/modules/mal/tokenizer.c b/monetdb5/modules/mal/tokenizer.c
--- a/monetdb5/modules/mal/tokenizer.c
+++ b/monetdb5/modules/mal/tokenizer.c
@@ -216,6 +216,7 @@ TKNZRappend(oid *pos, str *s)
        str url;
        str batname;
        str parts[MAX_TKNZR_DEPTH];
+       str msg;
        int i, new, r, depth;
        BAT *b;
        BUN p;
@@ -257,17 +258,15 @@ TKNZRappend(oid *pos, str *s)
                        BATkey(b, FALSE);
                        tokenBAT[i] = b;
 
-                       if (BKCsetName(&r, (int *) &(b->batCacheid), (str *) 
&batname)
-                               != MAL_SUCCEED) {
+                       if ((msg = BKCsetName(&r, (int *) &(b->batCacheid), 
(str *) &batname)) != MAL_SUCCEED) {
                                GDKfree(batname);
                                GDKfree(url);
-                               throw(MAL, "tokenizer.open", OPERATION_FAILED);
+                               return msg;
                        }
-                       if (BKCsetPersistent(&r, (int *) &(b->batCacheid))
-                               != MAL_SUCCEED) {
+                       if ( (msg=BKCsetPersistent(&r, (int *) 
&(b->batCacheid))) != MAL_SUCCEED) {
                                GDKfree(batname);
                                GDKfree(url);
-                               throw(MAL, "tokenizer.open", OPERATION_FAILED);
+                               return msg;
                        }
                        BUNappend(TRANS, batname, FALSE);
                        GDKfree(batname);
@@ -341,6 +340,7 @@ TKNZRdepositFile(int *r, str *fnme)
        int len = 0;
        char buf[PATHLENGTH];
        oid pos;
+       str msg= MAL_SUCCEED;
 
        if (TRANS == NULL)
                throw(MAL, "tokenizer", "no tokenizer store open");
@@ -379,7 +379,8 @@ TKNZRdepositFile(int *r, str *fnme)
                        }
                        /* found a string to be processed */
                        *t = 0;
-                       TKNZRappend(&pos, &s);
+                       msg = TKNZRappend(&pos, &s);
+                       if (msg ) break;
                        *t = '\n';
                        s = t + 1;
                        t = s;
@@ -389,7 +390,7 @@ TKNZRdepositFile(int *r, str *fnme)
        bstream_destroy(bs);
        mnstr_close(fs);
        mnstr_destroy(fs);
-       return MAL_SUCCEED;
+       return msg;
 }
 
 str
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to