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