📄 exception.cpp
字号:
#include <stdio.h>
#include "exception.h"
// check the validity of 'MAX_EXCEPTION_STACK_SIZE'
#if MAX_EXCEPTION_STACK_SIZE < 1
#error 'MAX_EXCEPTION_STACK_SIZE' was not properly configured. Please check "exception.h"!
#endif
#define ALIGN_MASK (0xffffffff ^ (MAX_EXCEPTION_STACK_SIZE*STACK_TYPE_SIZE))
_sys_ExceptStack::_sys_ExceptStack(void) :
tail(NULL),
front(NULL),
tempCounter(0)
{
tail = front = except_stack_queue;
bEmpty = true;
bFull = false;
}
_sys_ExceptStack::~_sys_ExceptStack(void)
{
}
void _sys_ExceptStack::AddException(void *pE)
{
if(bFull)
return;
if( ((ADDR)(front+1) & ALIGN_MASK) == (ADDR)tail )
bFull = true;
bEmpty = false;
*front++ = pE;
tempCounter++;
}
void* _sys_ExceptStack::GetException(void)
{
if(bEmpty)
return NULL;
if( ((ADDR)(tail+1) & ALIGN_MASK) == (ADDR)front )
bEmpty = true;
bFull = false;
void* value = *tail++;
tempCounter--;
return value;
}
_sys_ExceptStack __sysExceptionStack;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -