Browse Source

fix the last issues with using quick fit with the class interface.

release0.1.5
Georg Hopp 12 years ago
parent
commit
b44ec9f22b
  1. 36
      src/logger/interface/i_logger.c
  2. 13
      src/utils/memory.c

36
src/logger/interface/i_logger.c

@ -53,24 +53,24 @@ loggerLog(void * _object, logger_level level, const char * const fmt, ...) {
vsnprintf(msg, msg_size + 1, fmt, params);
va_end(params);
// ----- DEBUG ------
do {
struct i_Logger * iface;
do {
class_ptr class = GET_CLASS(_object);
iface = (struct i_Logger *)IFACE_GET(class, &i_Logger);
while ((NULL == iface || NULL == iface->log) && HAS_PARENT(class)) {
class = class->parent;
iface = (struct i_Logger *)IFACE_GET(class, &i_Logger);
}
assert(NULL != iface->log);
} while(0);
iface->log(_object, level, msg);
} while(0);
// ----- DEBUG ------
//CALL(_object, Logger, log, level, msg);
// // ----- DEBUG ------
// do {
// struct i_Logger * iface;
//
// do {
// class_ptr class = GET_CLASS(_object);
// iface = (struct i_Logger *)IFACE_GET(class, &i_Logger);
// while ((NULL == iface || NULL == iface->log) && HAS_PARENT(class)) {
// class = class->parent;
// iface = (struct i_Logger *)IFACE_GET(class, &i_Logger);
// }
// assert(NULL != iface->log);
// } while(0);
//
// iface->log(_object, level, msg);
// } while(0);
// // ----- DEBUG ------
CALL(_object, Logger, log, level, msg);
MEM_FREE(msg);
}

13
src/utils/memory.c

@ -41,9 +41,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define _GNU_SOURCE
#include <stdlib.h>
#include <string.h>
#define _GNU_SOURCE
#include <search.h>
#include "utils/memory.h"
@ -67,8 +68,8 @@ static
int
segmentFindCmp(const void * size_ptr, const void * subject)
{
if (*(size_t *)size_ptr < ((struct memSegment *)subject)->size)
return -1;
if (*(size_t *)size_ptr > ((struct memSegment *)subject)->size)
return 1;
return 0;
}
@ -139,10 +140,6 @@ memCalloc(size_t nmemb, size_t size)
{
size_t _size = nmemb * size;
void * mem = memMalloc(_size);
struct memSegment * seg =
(struct memSegment *)(mem - sizeof(struct memSegment));
printf("DEBUG %zu : %zu\n", _size, seg->size);
memset(mem, 0, _size);
@ -153,7 +150,7 @@ void
memFree(void ** mem)
{
if (NULL != *mem) {
void * foo = tsearch(*mem - sizeof(struct memSegment), &segments, segmentSearchCmp);
tsearch(*mem - sizeof(struct memSegment), &segments, segmentSearchCmp);
*mem = NULL;
}
}

Loading…
Cancel
Save