去掉检测指针有效范围的宏定义
This commit is contained in:
parent
2d0e4def19
commit
078da19f55
|
@ -389,7 +389,7 @@ const Config& Config::CreateRAM()
|
|||
ConfigBase::ConfigBase()
|
||||
: Cfg(*Config::Current)
|
||||
{
|
||||
assert_ptr(&Cfg);
|
||||
assert(&Cfg, "Cfg");
|
||||
|
||||
New = true;
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ Stream::Stream(const Buffer& bs)
|
|||
|
||||
void Stream::Init(void* buf, uint len)
|
||||
{
|
||||
assert_ptr(buf);
|
||||
assert(buf, "buf");
|
||||
|
||||
_Buffer = (byte*)buf;
|
||||
_Capacity = len;
|
||||
|
@ -338,7 +338,6 @@ MemoryStream::MemoryStream(void* buf, uint len) : Stream(buf, len)
|
|||
// 销毁数据流
|
||||
MemoryStream::~MemoryStream()
|
||||
{
|
||||
assert_ptr(this);
|
||||
if(_needFree)
|
||||
{
|
||||
if(_Buffer != _Arr) delete[] _Buffer;
|
||||
|
|
|
@ -18,8 +18,8 @@ extern "C"
|
|||
|
||||
#if defined(DEBUG) && defined(USE_FULL_ASSERT)
|
||||
|
||||
#define assert_ptr(expr) (assert_ptr_(expr) ? (void)0 : assert_failed2("ptr==nullptr", (const char*)__FILE__, __LINE__))
|
||||
bool assert_ptr_(const void* p);
|
||||
//#define assert_ptr(expr) (assert_ptr_(expr) ? (void)0 : assert_failed2("ptr==nullptr", (const char*)__FILE__, __LINE__))
|
||||
//bool assert_ptr_(const void* p);
|
||||
|
||||
void assert_failed2(const char* msg, const char* file, unsigned int line);
|
||||
#define assert(expr, msg) ((expr) ? (void)0 : assert_failed2(msg, (const char*)__FILE__, __LINE__))
|
||||
|
|
|
@ -75,7 +75,7 @@ ShunCom::ShunCom()
|
|||
|
||||
void ShunCom::Init(ITransport* port, Pin rst)
|
||||
{
|
||||
assert_ptr(port);
|
||||
assert(port, "port");
|
||||
|
||||
Set(port);
|
||||
//MaxSize = 82;
|
||||
|
|
|
@ -354,7 +354,7 @@ void W5500::Init()
|
|||
// 初始化
|
||||
void W5500::Init(Spi* spi, Pin irq, Pin rst)
|
||||
{
|
||||
assert_ptr(spi);
|
||||
assert(spi, "spi");
|
||||
|
||||
debug_printf("\r\n");
|
||||
|
||||
|
|
|
@ -41,8 +41,8 @@ extern "C"
|
|||
// 验证确保对象不为空,并且在有效的内存范围内
|
||||
//extern void assert_failed(uint8_t* file, uint32_t line);
|
||||
|
||||
#define assert_ptr(expr) (assert_ptr_(expr) ? (void)0 : assert_failed2("ptr==nullptr", (const char*)__FILE__, __LINE__))
|
||||
bool assert_ptr_(const void* p);
|
||||
//#define assert_ptr(expr) (assert_ptr_(expr) ? (void)0 : assert_failed2("ptr==nullptr", (const char*)__FILE__, __LINE__))
|
||||
//bool assert_ptr_(const void* p);
|
||||
|
||||
void assert_failed2(cstring msg, cstring file, unsigned int line);
|
||||
#define assert(expr, msg) ((expr) ? (void)0 : assert_failed2(msg, (const char*)__FILE__, __LINE__))
|
||||
|
|
|
@ -114,8 +114,6 @@ void* operator new[](uint size)
|
|||
|
||||
void operator delete(void* p) noexcept
|
||||
{
|
||||
assert_ptr(p);
|
||||
|
||||
mem_printf(" delete 0x%p ", p);
|
||||
if(p)
|
||||
{
|
||||
|
@ -126,8 +124,6 @@ void operator delete(void* p) noexcept
|
|||
|
||||
void operator delete[](void* p) noexcept
|
||||
{
|
||||
assert_ptr(p);
|
||||
|
||||
mem_printf(" delete[] 0x%p ", p);
|
||||
if(p)
|
||||
{
|
||||
|
|
|
@ -58,9 +58,6 @@ uint Controller::Dispatch(ITransport* port, Buffer& bs, void* param, void* param
|
|||
byte* buf = bs.GetBuffer();
|
||||
uint len = bs.Length();
|
||||
|
||||
assert_ptr(buf);
|
||||
assert_ptr(param);
|
||||
|
||||
auto control = (Controller*)param;
|
||||
|
||||
#if MSG_DEBUG
|
||||
|
@ -91,7 +88,6 @@ uint Controller::Dispatch(ITransport* port, Buffer& bs, void* param, void* param
|
|||
}
|
||||
|
||||
assert(control, "控制器指针已被改变3");
|
||||
assert_ptr(control);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -16,7 +16,6 @@ bool Modbus::Read(Stream& ms)
|
|||
if(ms.Remain() < 4) return false;
|
||||
|
||||
byte* buf = ms.Current();
|
||||
assert_ptr(buf);
|
||||
uint p = ms.Position();
|
||||
|
||||
Address = ms.ReadByte();
|
||||
|
|
|
@ -15,9 +15,7 @@ Slave::~Slave()
|
|||
|
||||
void Slave::OnReceive(ITransport* transport, byte* buf, uint len, void* param)
|
||||
{
|
||||
assert_ptr(param);
|
||||
|
||||
Slave* slave = (Slave*)param;
|
||||
auto slave = (Slave*)param;
|
||||
|
||||
Stream ms(buf, len);
|
||||
Modbus entity;
|
||||
|
|
|
@ -26,9 +26,6 @@ ITransport::~ITransport()
|
|||
// 打开传输口
|
||||
bool ITransport::Open()
|
||||
{
|
||||
// 特别是接口要检查this指针
|
||||
assert_ptr(this);
|
||||
|
||||
if(Opened || Opening) return true;
|
||||
|
||||
Opening = true;
|
||||
|
@ -43,9 +40,6 @@ bool ITransport::Open()
|
|||
// 关闭传输口
|
||||
void ITransport::Close()
|
||||
{
|
||||
// 特别是接口要检查this指针
|
||||
assert_ptr(this);
|
||||
|
||||
if(!Opened || Opening) return;
|
||||
|
||||
Opening = true;
|
||||
|
@ -57,9 +51,6 @@ void ITransport::Close()
|
|||
// 发送数据
|
||||
bool ITransport::Write(const Buffer& bs)
|
||||
{
|
||||
// 特别是接口要检查this指针
|
||||
assert_ptr(this);
|
||||
|
||||
if(!Opened && !Open()) return false;
|
||||
|
||||
return OnWrite(bs);
|
||||
|
@ -68,9 +59,6 @@ bool ITransport::Write(const Buffer& bs)
|
|||
// 发送数据
|
||||
bool ITransport::Write(const Buffer& bs, const void* opt)
|
||||
{
|
||||
// 特别是接口要检查this指针
|
||||
assert_ptr(this);
|
||||
|
||||
if(!Opened && !Open()) return false;
|
||||
|
||||
return OnWriteEx(bs, opt);
|
||||
|
@ -79,9 +67,6 @@ bool ITransport::Write(const Buffer& bs, const void* opt)
|
|||
// 接收数据
|
||||
uint ITransport::Read(Buffer& bs)
|
||||
{
|
||||
// 特别是接口要检查this指针
|
||||
assert_ptr(this);
|
||||
|
||||
if(!Opened && !Open()) return 0;
|
||||
|
||||
return OnRead(bs);
|
||||
|
@ -98,9 +83,6 @@ uint ITransport::Read(Buffer& bs)
|
|||
// 注册回调函数
|
||||
void ITransport::Register(TransportHandler handler, void* param)
|
||||
{
|
||||
// 特别是接口要检查this指针
|
||||
assert_ptr(this);
|
||||
|
||||
_handler = handler;
|
||||
_param = param;
|
||||
}
|
||||
|
@ -149,8 +131,6 @@ uint PackPort::OnRead(Buffer& bs) { return Port->Read(bs); }
|
|||
|
||||
uint PackPort::OnPortReceive(ITransport* sender, Buffer& bs, void* param, void* param2)
|
||||
{
|
||||
assert_ptr(param);
|
||||
|
||||
auto pp = dynamic_cast<PackPort*>((PackPort*)param);
|
||||
return pp->OnReceive(bs, param2);
|
||||
}
|
||||
|
|
|
@ -12,8 +12,6 @@ Zigbee::Zigbee(ITransport* port, Pin rst)
|
|||
|
||||
void Zigbee::Init(ITransport* port, Pin rst)
|
||||
{
|
||||
assert_ptr(port);
|
||||
|
||||
Set(port);
|
||||
MaxSize = 64;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ void assert_failed(uint8_t* file, unsigned int line)
|
|||
TInterrupt::Halt();
|
||||
}
|
||||
|
||||
bool assert_ptr_(const void* p)
|
||||
/*bool assert_ptr_(const void* p)
|
||||
{
|
||||
if((uint)p < FLASH_BASE)
|
||||
{
|
||||
|
@ -54,7 +54,7 @@ bool assert_ptr_(const void* p)
|
|||
//if(p <= (void*)&__heap_base) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}*/
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -53,8 +53,7 @@ bool OpenLed(Message& msg, void* param)
|
|||
// 发送刷小灯的消息
|
||||
void FlashLed(void* param)
|
||||
{
|
||||
assert_ptr(param);
|
||||
Controller* control = (Controller*)param;
|
||||
auto control = (Controller*)param;
|
||||
|
||||
// 发送广播消息,刷所有人小灯
|
||||
TinyMessage msg(0x10);
|
||||
|
|
|
@ -110,9 +110,6 @@ bool IcmpSocket::Process(IP_HEADER& ip, Stream& ms)
|
|||
// Ping目的地址,附带a~z重复的负载数据
|
||||
bool IcmpSocket::Ping(IPAddress& ip, uint payloadLength)
|
||||
{
|
||||
assert(this, "非法调用Icmp");
|
||||
assert_ptr(this);
|
||||
|
||||
byte buf[sizeof(ETH_HEADER) + sizeof(IP_HEADER) + sizeof(ICMP_HEADER) + 64];
|
||||
// 注意,此时指针位于0,而内容长度为缓冲区长度
|
||||
Stream ms(buf, ArrayLength(buf));
|
||||
|
|
|
@ -288,8 +288,7 @@ bool TinyIP::SendIP(IP_TYPE type, const IPAddress& remote, const byte* buf, uint
|
|||
ip->Checksum = 0;
|
||||
ip->Checksum = _REV16(CheckSum(nullptr, (byte*)ip, sizeof(IP_HEADER), 0));
|
||||
|
||||
assert_ptr(Arp);
|
||||
ArpSocket* arp = (ArpSocket*)Arp;
|
||||
auto arp = (ArpSocket*)Arp;
|
||||
MacAddress mac;
|
||||
if(!arp->Resolve(remote, mac))
|
||||
{
|
||||
|
|
|
@ -17,8 +17,6 @@ static void TinyClientTask(void* param);
|
|||
|
||||
TinyClient::TinyClient(TinyController* control)
|
||||
{
|
||||
assert_ptr(control);
|
||||
|
||||
Control = control;
|
||||
Control->GetKey = Delegate2<byte, Buffer&>(&TinyClient::GetDeviceKey, this);
|
||||
|
||||
|
@ -266,8 +264,6 @@ void TinyClient::ReportAsync(uint offset,uint length)
|
|||
|
||||
void TinyClientTask(void* param)
|
||||
{
|
||||
assert_ptr(param);
|
||||
|
||||
auto client = (TinyClient*)param;
|
||||
uint offset = client->NextReport;
|
||||
uint len = client->ReportLength;
|
||||
|
|
|
@ -521,8 +521,6 @@ bool TinyController::Post(const TinyMessage& msg, int msTimeout)
|
|||
|
||||
void SendTask(void* param)
|
||||
{
|
||||
assert_ptr(param);
|
||||
|
||||
auto control = (TinyController*)param;
|
||||
control->Loop();
|
||||
}
|
||||
|
@ -631,14 +629,6 @@ void TinyController::Loop()
|
|||
if(count == 0) Sys.SetTask(_taskID, false);
|
||||
}
|
||||
|
||||
/*void StatTask(void* param)
|
||||
{
|
||||
assert_ptr(param);
|
||||
|
||||
auto control = (TinyController*)param;
|
||||
control->ShowStat();
|
||||
}*/
|
||||
|
||||
// 显示统计信息
|
||||
void TinyController::ShowStat() const
|
||||
{
|
||||
|
|
|
@ -158,8 +158,6 @@ uint TinyMessage::MaxDataSize() const
|
|||
void TinyMessage::Show() const
|
||||
{
|
||||
#if MSG_DEBUG
|
||||
assert_ptr(this);
|
||||
|
||||
byte flag = *((byte*)&_Code + 1);
|
||||
msg_printf("0x%02X => 0x%02X Code=0x%02X Flag=0x%02X Seq=0x%02X Retry=%d", Src, Dest, Code, flag, Seq, Retry);
|
||||
|
||||
|
@ -174,7 +172,6 @@ void TinyMessage::Show() const
|
|||
ushort len = Length;
|
||||
if(len > 0)
|
||||
{
|
||||
assert_ptr(Data);
|
||||
msg_printf(" Data[%02d]=", len);
|
||||
ByteArray(Data, len).Show();
|
||||
}
|
||||
|
|
|
@ -50,15 +50,6 @@ bool TinyServer::Send(Message& msg) const
|
|||
return Control->Send(msg);
|
||||
}
|
||||
|
||||
/*bool OnServerReceived(void* sender, Message& msg, void* param)
|
||||
{
|
||||
auto server = (TinyServer*)param;
|
||||
assert_ptr(server);
|
||||
|
||||
// 消息转发
|
||||
return server->OnReceive((TinyMessage&)msg);
|
||||
}*/
|
||||
|
||||
// 常用系统级消息
|
||||
|
||||
void TinyServer::Start()
|
||||
|
|
|
@ -218,7 +218,6 @@ void TokenClient::LoopTask()
|
|||
void BroadcastHelloTask(void* param)
|
||||
{
|
||||
TS("TokenClient::BroadcastHello");
|
||||
assert_ptr(param);
|
||||
|
||||
auto client = (TokenClient*)param;
|
||||
client->SayHello(true);
|
||||
|
|
|
@ -569,7 +569,6 @@ void TokenStat::Clear()
|
|||
String& TokenStat::ToStr(String& str) const
|
||||
{
|
||||
TS("TokenStat::ToStr");
|
||||
assert_ptr(this);
|
||||
|
||||
/*debug_printf("this=0x%08X _Last=0x%08X _Total=0x%08X ", this, _Last, _Total);
|
||||
Percent().Show(true);*/
|
||||
|
|
|
@ -23,7 +23,6 @@ bool TokenMessage::Read(Stream& ms)
|
|||
{
|
||||
TS("TokenMessage::Read");
|
||||
|
||||
assert_ptr(this);
|
||||
if(ms.Remain() < MinSize) return false;
|
||||
|
||||
byte temp = ms.ReadByte();
|
||||
|
@ -60,7 +59,6 @@ void TokenMessage::Write(Stream& ms) const
|
|||
{
|
||||
TS("TokenMessage::Write");
|
||||
|
||||
assert_ptr(this);
|
||||
byte tmp = Code | (Reply << 7);
|
||||
if((!Reply && OneWay) || (Reply && Error)) tmp |= (1 << 6);
|
||||
ms.Write(tmp);
|
||||
|
@ -102,8 +100,6 @@ void TokenMessage::Show() const
|
|||
#if MSG_DEBUG
|
||||
TS("TokenMessage::Show");
|
||||
|
||||
assert_ptr(this);
|
||||
|
||||
byte code = Code;
|
||||
if(Reply) code |= 0x80;
|
||||
if((!Reply && OneWay) || (Reply && Error)) code |= (1 << 6);
|
||||
|
@ -128,7 +124,6 @@ void TokenMessage::Show() const
|
|||
ushort len = Length;
|
||||
if(len > 0)
|
||||
{
|
||||
assert_ptr(Data);
|
||||
debug_printf(" Data[%d]=",len);
|
||||
// 大于32字节时,反正都要换行显示,干脆一开始就换行,让它对齐
|
||||
//if(len > 32) debug_printf("\r\n");
|
||||
|
|
|
@ -17,18 +17,13 @@ public:
|
|||
// 为某个指针封装
|
||||
SmartPtr::SmartPtr(void* ptr)
|
||||
{
|
||||
assert_ptr(ptr);
|
||||
|
||||
_ptr = new WrapPtr(ptr);
|
||||
}
|
||||
|
||||
// 拷贝智能指针。仅拷贝内部包装,然后引用计数加一
|
||||
SmartPtr::SmartPtr(const SmartPtr& ptr)
|
||||
{
|
||||
assert_ptr(ptr._ptr);
|
||||
|
||||
auto p = (WrapPtr*)ptr._ptr;
|
||||
assert_ptr(p->Ptr);
|
||||
|
||||
_ptr = p;
|
||||
p->Count++;
|
||||
|
|
Loading…
Reference in New Issue