X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fbase%2Feerror.h;h=249c2a0dcebb75a7c364a564e0a29b80fb166793;hp=6d38bcc74ec723ae2034e9f2ad22810ae4e1814d;hb=ca63dd3bb9114ce07ba24739325036c17ad15729;hpb=13d05b593618882cfc356aef47a4a02fcb857271 diff --git a/lib/base/eerror.h b/lib/base/eerror.h index 6d38bcc..249c2a0 100644 --- a/lib/base/eerror.h +++ b/lib/base/eerror.h @@ -17,45 +17,11 @@ #include #include #include -#endif // MEMLEAK_CHECK - -#ifndef NULL -#define NULL 0 -#endif - -#ifndef SWIG -#define CHECKFORMAT __attribute__ ((__format__(__printf__, 1, 2))) -#else -#define CHECKFORMAT -#endif - -void CHECKFORMAT eFatal(const char*, ...); - -enum { lvlDebug=1, lvlWarning=2, lvlFatal=4 }; - -#ifndef SWIG -extern Signal2 logOutput; -extern int logOutputConsole; -#endif - -#ifdef ASSERT -#undef ASSERT -#endif - -#ifdef DEBUG - void CHECKFORMAT eDebug(const char*, ...); - void CHECKFORMAT eDebugNoNewLine(const char*, ...); - void CHECKFORMAT eWarning(const char*, ...); -#ifndef SWIG - #define ASSERT(x) { if (!(x)) eFatal("%s:%d ASSERTION %s FAILED!", __FILE__, __LINE__, #x); } -#endif - -#ifdef MEMLEAK_CHECK typedef struct { unsigned int address; unsigned int size; - char *file; + const char *file; void *backtrace[BACKTRACE_DEPTH]; unsigned char btcount; unsigned short line; @@ -75,11 +41,11 @@ static inline void AddTrack(unsigned int addr, unsigned int asize, const char allocList = new(AllocList); info.address = addr; - info.file = strdup(fname); + info.file = fname; info.line = lnum; info.size = asize; info.type = type; - info.btcount = backtrace( info.backtrace, BACKTRACE_DEPTH ); + info.btcount = 0; //backtrace( info.backtrace, BACKTRACE_DEPTH ); singleLock s(memLock); (*allocList)[addr]=info; }; @@ -96,14 +62,11 @@ static inline void RemoveTrack(unsigned int addr, unsigned int type) if ( i->second.type != type ) i->second.type=3; else - { - free(i->second.file); allocList->erase(i); - } } }; -inline void * operator new(unsigned int size, const char *file, int line) +inline void * operator new(size_t size, const char *file, int line) { void *ptr = (void *)malloc(size); AddTrack((unsigned int)ptr, size, file, line, 1); @@ -116,7 +79,7 @@ inline void operator delete(void *p) free(p); }; -inline void * operator new[](unsigned int size, const char *file, int line) +inline void * operator new[](size_t size, const char *file, int line) { void *ptr = (void *)malloc(size); AddTrack((unsigned int)ptr, size, file, line, 2); @@ -134,7 +97,31 @@ void DumpUnfreed(); #endif // MEMLEAK_CHECK -#else +#ifndef NULL +#define NULL 0 +#endif + +#ifdef ASSERT +#undef ASSERT +#endif + +#ifndef SWIG + +#define CHECKFORMAT __attribute__ ((__format__(__printf__, 1, 2))) + +extern SigC::Connection logConnection; +extern Signal2 logOutput; +extern int logOutputConsole; + +void CHECKFORMAT eFatal(const char*, ...); +enum { lvlDebug=1, lvlWarning=2, lvlFatal=4 }; + +#ifdef DEBUG + void CHECKFORMAT eDebug(const char*, ...); + void CHECKFORMAT eDebugNoNewLine(const char*, ...); + void CHECKFORMAT eWarning(const char*, ...); + #define ASSERT(x) { if (!(x)) eFatal("%s:%d ASSERTION %s FAILED!", __FILE__, __LINE__, #x); } +#else // DEBUG inline void eDebug(const char* fmt, ...) { } @@ -149,7 +136,10 @@ void DumpUnfreed(); #define ASSERT(x) do { } while (0) #endif //DEBUG -void ePythonOutput(const char *); void eWriteCrashdump(); +#endif // SWIG + +void ePythonOutput(const char *); + #endif // __E_ERROR__