Index: src/OFFile.m ================================================================== --- src/OFFile.m +++ src/OFFile.m @@ -65,17 +65,14 @@ - initWithPath: (const char*)path andMode: (const char*)mode { if ((self = [super init])) { - if ((fp = fopen(path, mode)) == NULL) { + if ((fp = fopen(path, mode)) == NULL) [[OFOpenFileFailedException newWithObject: self andPath: path andMode: mode] raise]; - [self free]; - return nil; - } } return self; } - free @@ -107,11 +104,11 @@ andNItems: (size_t)nitems { uint8_t *ret; ret = [self getMemForNItems: nitems - withSize: size]; + ofSize: size]; @try { [self readIntoBuffer: ret withSize: size andNItems: nitems]; Index: src/OFObject.h ================================================================== --- src/OFObject.h +++ src/OFObject.h @@ -24,14 +24,14 @@ } - init; - (void*)getMemWithSize: (size_t)size; - (void*)getMemForNItems: (size_t)nitems - withSize: (size_t)size; + ofSize: (size_t)size; - (void*)resizeMem: (void*)ptr toSize: (size_t)size; - (void*)resizeMem: (void*)ptr toNItems: (size_t)nitems ofSize: (size_t)size; - freeMem: (void*)ptr; - free; @end Index: src/OFObject.m ================================================================== --- src/OFObject.m +++ src/OFObject.m @@ -74,18 +74,16 @@ return iter->ptr; } - (void*)getMemForNItems: (size_t)nitems - withSize: (size_t)size + ofSize: (size_t)size { size_t memsize; - if (size > SIZE_MAX / nitems) { + if (size > SIZE_MAX / nitems) [[OFOverflowException newWithObject: self] raise]; - return NULL; - } memsize = nitems * size; return [self getMemWithSize: memsize]; } @@ -97,36 +95,32 @@ if (ptr == NULL) return [self getMemWithSize: size]; for (iter = __mem_pool; iter != NULL; iter = iter->prev) { if (iter->ptr == ptr) { - if ((ptr = realloc(iter->ptr, size)) == NULL) { + if ((ptr = realloc(iter->ptr, size)) == NULL) [[OFNoMemException newWithObject: self andSize: size] raise]; - return iter->ptr; - } iter->ptr = ptr; return ptr; } } [[OFMemNotPartOfObjException newWithObject: self andPointer: ptr] raise]; - return NULL; + return NULL; /* never reached, but makes gcc happy */ } - (void*)resizeMem: (void*)ptr toNItems: (size_t)nitems ofSize: (size_t)size { size_t memsize; - if (size > SIZE_MAX / nitems) { + if (size > SIZE_MAX / nitems) [[OFOverflowException newWithObject: self] raise]; - return ptr; - } memsize = nitems * size; return [self resizeMem: ptr toSize: memsize]; } @@ -151,9 +145,8 @@ } } [[OFMemNotPartOfObjException newWithObject: self andPointer: ptr] raise]; - - return self; + return self /* never reached, but makes gcc happy */; } @end Index: src/OFXMLFactory.m ================================================================== --- src/OFXMLFactory.m +++ src/OFXMLFactory.m @@ -68,57 +68,45 @@ char *ret; size_t i, j, len, nlen; len = nlen = strlen(s); - if ((ret = malloc(len + 1)) == NULL) { + if ((ret = malloc(len + 1)) == NULL) [[OFNoMemException newWithObject: nil andSize: len + 1] raise]; - return NULL; - } for (i = j = 0; i < len; i++) { switch (s[i]) { case '<': - if (!xmlfactory_add2str(&ret, &nlen, &j, "<")) { - [[OFNoMemException newWithObject: nil - andSize: nlen + 4] - raise]; - return NULL; - } - break; - case '>': - if (!xmlfactory_add2str(&ret, &nlen, &j, ">")) { - [[OFNoMemException newWithObject: nil - andSize: nlen + 4] - raise]; - return NULL; - } - break; - case '"': - if (!xmlfactory_add2str(&ret, &nlen, &j, """)) { - [[OFNoMemException newWithObject: nil - andSize: nlen + 6] - raise]; - return NULL; - } - break; - case '\'': - if (!xmlfactory_add2str(&ret, &nlen, &j, "'")) { - [[OFNoMemException newWithObject: nil - andSize: nlen + 6] - raise]; - return NULL; - } - break; - case '&': - if (!xmlfactory_add2str(&ret, &nlen, &j, "&")) { - [[OFNoMemException newWithObject: nil - andSize: nlen + 5] - raise]; - return NULL; - } + if (!xmlfactory_add2str(&ret, &nlen, &j, "<")) + [[OFNoMemException newWithObject: nil + andSize: nlen + 4] + raise]; + break; + case '>': + if (!xmlfactory_add2str(&ret, &nlen, &j, ">")) + [[OFNoMemException newWithObject: nil + andSize: nlen + 4] + raise]; + break; + case '"': + if (!xmlfactory_add2str(&ret, &nlen, &j, """)) + [[OFNoMemException newWithObject: nil + andSize: nlen + 6] + raise]; + break; + case '\'': + if (!xmlfactory_add2str(&ret, &nlen, &j, "'")) + [[OFNoMemException newWithObject: nil + andSize: nlen + 6] + raise]; + break; + case '&': + if (!xmlfactory_add2str(&ret, &nlen, &j, "&")) + [[OFNoMemException newWithObject: nil + andSize: nlen + 5] + raise]; break; default: ret[j++] = s[i]; break; } @@ -136,15 +124,13 @@ size_t i, len; va_list args; /* Start of tag */ len = strlen(name) + 3; - if ((xml = malloc(len)) == NULL) { + if ((xml = malloc(len)) == NULL) [[OFNoMemException newWithObject: nil andSize: len] raise]; - return NULL; - } i = 0; xml[i++] = '<'; memcpy(xml + i, name, strlen(name)); i += strlen(name); @@ -170,11 +156,10 @@ [[OFNoMemException newWithObject: nil andSize: len + 1 + strlen(arg) + 2 + strlen(esc_val) + 1] raise]; - return NULL; } xml[i++] = ' '; memcpy(xml + i, arg, strlen(arg)); i += strlen(arg); @@ -189,31 +174,27 @@ va_end(args); /* End of tag */ if (close) { if (data == NULL) { - if (!xmlfactory_resize(&xml, &len, 2 - 1)) { + if (!xmlfactory_resize(&xml, &len, 2 - 1)) [[OFNoMemException newWithObject: nil andSize: len + 2 - 1] raise]; - return NULL; - } xml[i++] = '/'; xml[i++] = '>'; } else { if (!xmlfactory_resize(&xml, &len, 1 + strlen(data) + - 2 + strlen(name) + 1 - 1)) { + 2 + strlen(name) + 1 - 1)) [[OFNoMemException newWithObject: nil andSize: len + 1 + strlen(data) + 2 + strlen(name) + 1 - 1] raise]; - return NULL; - } xml[i++] = '>'; memcpy(xml + i, data, strlen(data)); i += strlen(data); xml[i++] = '<'; @@ -237,15 +218,13 @@ if (strs[0] == NULL) return NULL; len = strlen(*strs) + 1; - if ((ret = malloc(len)) == NULL) { + if ((ret = malloc(len)) == NULL) [[OFNoMemException newWithObject: nil andSize: len] raise]; - return NULL; - } memcpy(ret, strs[0], len - 1); pos = len - 1; for (i = 1; strs[i] != NULL; i++) { @@ -252,11 +231,10 @@ if (!xmlfactory_add2str(&ret, &len, &pos, strs[i])) { free(ret); [[OFNoMemException newWithObject: nil andSize: len + strlen(strs[i])] raise]; - return NULL; } } for (i = 0; strs[i] != NULL; i++) free(strs[i]);