Alien-libpanda
view release on metacpan or search on metacpan
src/panda/log.h view on Meta::CPAN
code; \
panda::log::details::_do_log(log, _panda_log_code_point_, level); \
} \
} while (0);
#define panda_log_m(module, level, msg) panda_elog_m(module, level, { log << msg; })
#define panda_elog(level, code) panda_elog_m(*panda_log_module, level, code)
#define panda_log(level, msg) panda_log_m (*panda_log_module, level, msg)
#define panda_log_verbose_debug(msg) panda_log(panda::log::VerboseDebug, msg)
#define panda_log_debug(msg) panda_log(panda::log::Debug, msg)
#define panda_log_info(msg) panda_log(panda::log::Info, msg)
#define panda_log_notice(msg) panda_log(panda::log::Notice, msg)
#define panda_log_warn(msg) panda_log(panda::log::Warning, msg)
#define panda_log_error(msg) panda_log(panda::log::Error, msg)
#define panda_log_critical(msg) panda_log(panda::log::Critical, msg)
#define panda_log_alert(msg) panda_log(panda::log::Alert, msg)
#define panda_log_emergency(msg) panda_log(panda::log::Emergency, msg)
#define panda_elog_verbose_debug(code) panda_elog(panda::log::VerboseDebug, code)
#define panda_elog_debug(code) panda_elog(panda::log::Debug, code)
#define panda_elog_info(code) panda_elog(panda::log::Info, code)
#define panda_elog_notice(code) panda_elog(panda::log::Notice, code)
#define panda_elog_warn(code) panda_elog(panda::log::Warning, code)
#define panda_elog_error(code) panda_elog(panda::log::Error, code)
#define panda_elog_critical(code) panda_elog(panda::log::Critical, code)
#define panda_elog_alert(code) panda_elog(panda::log::Alert, code)
#define panda_elog_emergency(code) panda_elog(panda::log::Emergency, code)
#define panda_debug_v(var) panda_log(panda::log::Debug, #var << " = " << (var))
#define PANDA_ASSERT(var, msg) if(!(auto assert_value = var)) { panda_log_emergency("assert failed: " << #var << " is " << assert_value << msg) }
enum Level {
VerboseDebug = 0,
Debug,
Info,
Notice,
Warning,
Error,
src/panda/memory.h view on Meta::CPAN
void* allocate () {
if (!first_free) grow();
void* ret = first_free;
first_free = *((void**)ret);
return ret;
}
void deallocate (void* elem) {
#ifdef TEST_FULL
if(!is_mine(elem)) abort(); // protection for debugging, normally you MUST NEVER pass a pointer that wasn't created via current mempool
#endif
*((void**)elem) = first_free;
first_free = elem;
}
~MemoryPool ();
private:
struct Pool {
char* list;
( run in 1.125 second using v1.01-cache-2.11-cpan-49f99fa48dc )