--- a/searchengine/oss/sb/snowball/libstemmer/libstemmer.c Mon May 03 13:33:22 2010 +0300
+++ b/searchengine/oss/sb/snowball/libstemmer/libstemmer.c Fri May 14 16:57:37 2010 +0300
@@ -77,12 +77,20 @@
(struct sb_stemmer *) malloc(sizeof(struct sb_stemmer));
if (stemmer == NULL) return NULL;
enc = sb_getenc(charenc);
- if (enc == ENC_UNKNOWN) return NULL;
+ if (enc == ENC_UNKNOWN)
+ {
+ sb_stemmer_delete(stemmer);
+ return NULL;
+ }
for (module = modules; module->name != 0; module++) {
if (strcmp(module->name, algorithm) == 0 && module->enc == enc) break;
}
- if (module->name == NULL) return NULL;
+ if (module->name == NULL)
+ {
+ sb_stemmer_delete(stemmer);
+ return NULL;
+ }
stemmer->create = module->create;
stemmer->close = module->close;