//include "util.h"
#ifndef __XM_LOGIC_WIN_UTIL_H__
#define __XM_LOGIC_WIN_UTIL_H__
#include "xm_logic_define.h"
#include "xm_logic_view_list.h"
#include "xm_logic_gdi.h"
typedef void (*NewHandler)();
void setNewHandler(NewHandler newHandler);
NewHandler getNewHandler();
void* operatorNew(int size);
void operatorDelete(void* ptr);
#endif
//xm_logic_win_util.c
#include "xm_logic_view.h"
#include "xm_logic_main.h"
#include "xm_logic_message.h"
#include "xm_logic_tp.h"
#include "xm_logic_gdi.h"
#include "xm_logic_win_util.h"
static NewHandler s_newHandler = NULL;
void setNewHandler(NewHandler newHandler)
{
s_newHandler = newHandler;
}
NewHandler getNewHandler()
{
return s_newHandler;
}
void* operatorNew(int size)
{
void* p = NULL;
if (size == 0){
size = 1;
}
while ((p = malloc(size)) == NULL){
NewHandler handler = getNewHandler();
if (NULL != handler){
handler();
}
}
return p;
}
void operatorDelete(void* ptr){
if (NULL != ptr){
free(ptr);
}
ptr = NULL;
}
void* _new(void* self, uint16_t size) {
void * p = operatorNew(size);
memcpy(p, self, size);
return p;
}
void _delete(void* self) {
operatorDelete(self);
}