Skip to content

Commit ced6d20

Browse files
committed
For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives
1 parent a603a76 commit ced6d20

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+299
-294
lines changed

src/chat.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ u32 ChatBuffer::getScrollback() const
8383

8484
const ChatLine& ChatBuffer::getLine(u32 index) const
8585
{
86-
assert(index < getLineCount());
86+
assert(index < getLineCount()); // pre-condition
8787
return m_unformatted[index];
8888
}
8989

@@ -107,7 +107,8 @@ void ChatBuffer::deleteOldest(u32 count)
107107
// keep m_formatted in sync
108108
if (del_formatted < m_formatted.size())
109109
{
110-
assert(m_formatted[del_formatted].first);
110+
111+
sanity_check(m_formatted[del_formatted].first);
111112
++del_formatted;
112113
while (del_formatted < m_formatted.size() &&
113114
!m_formatted[del_formatted].first)

src/client.cpp

+22-18
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ void MeshUpdateQueue::addBlock(v3s16 p, MeshMakeData *data, bool ack_block_to_se
9797
{
9898
DSTACK(__FUNCTION_NAME);
9999

100-
assert(data);
100+
assert(data); // pre-condition
101101

102102
JMutexAutoLock lock(m_mutex);
103103

@@ -388,8 +388,9 @@ void Client::step(float dtime)
388388
if(counter <= 0.0) {
389389
counter = 2.0;
390390

391-
Player *myplayer = m_env.getLocalPlayer();
392-
assert(myplayer != NULL);
391+
Player *myplayer = m_env.getLocalPlayer();
392+
FATAL_ERROR_IF(myplayer == NULL, "Local player not found in environment.");
393+
393394
// Send TOSERVER_INIT
394395
// [0] u16 TOSERVER_INIT
395396
// [2] u8 SER_FMT_VER_HIGHEST_READ
@@ -707,7 +708,9 @@ bool Client::loadMedia(const std::string &data, const std::string &filename)
707708
// Create an irrlicht memory file
708709
io::IReadFile *rfile = irrfs->createMemoryReadFile(
709710
*data_rw, data_rw.getSize(), "_tempreadfile");
710-
assert(rfile);
711+
712+
FATAL_ERROR_IF(!rfile, "Could not create irrlicht memory file.");
713+
711714
// Read image
712715
video::IImage *img = vdrv->createImageFromFile(rfile);
713716
if(!img){
@@ -785,7 +788,8 @@ void Client::request_media(const std::vector<std::string> &file_requests)
785788
std::ostringstream os(std::ios_base::binary);
786789
writeU16(os, TOSERVER_REQUEST_MEDIA);
787790
size_t file_requests_size = file_requests.size();
788-
assert(file_requests_size <= 0xFFFF);
791+
792+
FATAL_ERROR_IF(file_requests_size > 0xFFFF, "Unsupported number of file requests");
789793

790794
// Packet dynamicly resized
791795
NetworkPacket* pkt = new NetworkPacket(TOSERVER_REQUEST_MEDIA, 2 + 0);
@@ -986,7 +990,8 @@ void Client::sendNodemetaFields(v3s16 p, const std::string &formname,
986990
const std::map<std::string, std::string> &fields)
987991
{
988992
size_t fields_size = fields.size();
989-
assert(fields_size <= 0xFFFF);
993+
994+
FATAL_ERROR_IF(fields_size > 0xFFFF, "Unsupported number of nodemeta fields");
990995

991996
NetworkPacket* pkt = new NetworkPacket(TOSERVER_NODEMETA_FIELDS, 0);
992997

@@ -1007,7 +1012,7 @@ void Client::sendInventoryFields(const std::string &formname,
10071012
const std::map<std::string, std::string> &fields)
10081013
{
10091014
size_t fields_size = fields.size();
1010-
assert(fields_size <= 0xFFFF);
1015+
FATAL_ERROR_IF(fields_size > 0xFFFF, "Unsupported number of inventory fields");
10111016

10121017
NetworkPacket* pkt = new NetworkPacket(TOSERVER_INVENTORY_FIELDS, 0);
10131018
*pkt << formname << (u16) (fields_size & 0xFFFF);
@@ -1141,7 +1146,7 @@ void Client::sendPlayerPos()
11411146
// Set peer id if not set already
11421147
if(myplayer->peer_id == PEER_ID_INEXISTENT)
11431148
myplayer->peer_id = our_peer_id;
1144-
// Check that an existing peer_id is the same as the connection's
1149+
11451150
assert(myplayer->peer_id == our_peer_id);
11461151

11471152
v3f pf = myplayer->getPosition();
@@ -1179,8 +1184,6 @@ void Client::sendPlayerItem(u16 item)
11791184
// Set peer id if not set already
11801185
if(myplayer->peer_id == PEER_ID_INEXISTENT)
11811186
myplayer->peer_id = our_peer_id;
1182-
1183-
// Check that an existing peer_id is the same as the connection's
11841187
assert(myplayer->peer_id == our_peer_id);
11851188

11861189
NetworkPacket* pkt = new NetworkPacket(TOSERVER_PLAYERITEM, 2);
@@ -1295,7 +1298,7 @@ Inventory* Client::getInventory(const InventoryLocation &loc)
12951298
}
12961299
break;
12971300
default:
1298-
assert(0);
1301+
FATAL_ERROR("Invalid inventory location type.");
12991302
}
13001303
return NULL;
13011304
}
@@ -1555,9 +1558,9 @@ float Client::mediaReceiveProgress()
15551558
void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
15561559
{
15571560
infostream<<"Client::afterContentReceived() started"<<std::endl;
1558-
assert(m_itemdef_received);
1559-
assert(m_nodedef_received);
1560-
assert(mediaReceived());
1561+
assert(m_itemdef_received); // pre-condition
1562+
assert(m_nodedef_received); // pre-condition
1563+
assert(mediaReceived()); // pre-condition
15611564

15621565
const wchar_t* text = wgettext("Loading textures...");
15631566

@@ -1697,9 +1700,10 @@ scene::ISceneManager* Client::getSceneManager()
16971700
}
16981701
u16 Client::allocateUnknownNodeId(const std::string &name)
16991702
{
1700-
errorstream<<"Client::allocateUnknownNodeId(): "
1701-
<<"Client cannot allocate node IDs"<<std::endl;
1702-
assert(0);
1703+
errorstream << "Client::allocateUnknownNodeId(): "
1704+
<< "Client cannot allocate node IDs" << std::endl;
1705+
FATAL_ERROR("Client allocated unknown node");
1706+
17031707
return CONTENT_IGNORE;
17041708
}
17051709
ISoundManager* Client::getSoundManager()
@@ -1734,7 +1738,7 @@ scene::IAnimatedMesh* Client::getMesh(const std::string &filename)
17341738
io::IFileSystem *irrfs = m_device->getFileSystem();
17351739
io::IReadFile *rfile = irrfs->createMemoryReadFile(
17361740
*data_rw, data_rw.getSize(), filename.c_str());
1737-
assert(rfile);
1741+
FATAL_ERROR_IF(!rfile, "Could not create/open RAM file");
17381742

17391743
scene::IAnimatedMesh *mesh = smgr->getMesh(rfile);
17401744
rfile->drop();

src/client/clientlauncher.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
128128
skin->setColor(gui::EGDC_HIGH_LIGHT_TEXT, video::SColor(255, 255, 255, 255));
129129

130130
g_fontengine = new FontEngine(g_settings, guienv);
131-
assert(g_fontengine != NULL);
131+
FATAL_ERROR_IF(g_fontengine == NULL, "Font engine creation failed.");
132132

133133
#if (IRRLICHT_VERSION_MAJOR >= 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR >= 2
134134
// Irrlicht 1.8 input colours

src/client/tile.cpp

+18-18
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class SourceImageCache
199199
void insert(const std::string &name, video::IImage *img,
200200
bool prefer_local, video::IVideoDriver *driver)
201201
{
202-
assert(img);
202+
assert(img); // Pre-condition
203203
// Remove old image
204204
std::map<std::string, video::IImage*>::iterator n;
205205
n = m_images.find(name);
@@ -423,7 +423,7 @@ IWritableTextureSource* createTextureSource(IrrlichtDevice *device)
423423
TextureSource::TextureSource(IrrlichtDevice *device):
424424
m_device(device)
425425
{
426-
assert(m_device);
426+
assert(m_device); // Pre-condition
427427

428428
m_main_thread = get_current_thread_id();
429429

@@ -597,7 +597,7 @@ u32 TextureSource::generateTexture(const std::string &name)
597597
}
598598

599599
video::IVideoDriver *driver = m_device->getVideoDriver();
600-
assert(driver);
600+
sanity_check(driver);
601601

602602
video::IImage *img = generateImage(name);
603603

@@ -684,7 +684,7 @@ void TextureSource::insertSourceImage(const std::string &name, video::IImage *im
684684
{
685685
//infostream<<"TextureSource::insertSourceImage(): name="<<name<<std::endl;
686686

687-
assert(get_current_thread_id() == m_main_thread);
687+
sanity_check(get_current_thread_id() == m_main_thread);
688688

689689
m_sourcecache.insert(name, img, true, m_device->getVideoDriver());
690690
m_source_image_existence.set(name, true);
@@ -695,16 +695,16 @@ void TextureSource::rebuildImagesAndTextures()
695695
JMutexAutoLock lock(m_textureinfo_cache_mutex);
696696

697697
video::IVideoDriver* driver = m_device->getVideoDriver();
698-
assert(driver != 0);
698+
sanity_check(driver);
699699

700700
// Recreate textures
701701
for (u32 i=0; i<m_textureinfo_cache.size(); i++){
702702
TextureInfo *ti = &m_textureinfo_cache[i];
703703
video::IImage *img = generateImage(ti->name);
704704
#ifdef __ANDROID__
705705
img = Align2Npot2(img, driver);
706-
assert(img->getDimension().Height == npot2(img->getDimension().Height));
707-
assert(img->getDimension().Width == npot2(img->getDimension().Width));
706+
sanity_check(img->getDimension().Height == npot2(img->getDimension().Height));
707+
sanity_check(img->getDimension().Width == npot2(img->getDimension().Width));
708708
#endif
709709
// Create texture from resulting image
710710
video::ITexture *t = NULL;
@@ -725,7 +725,7 @@ video::ITexture* TextureSource::generateTextureFromMesh(
725725
const TextureFromMeshParams &params)
726726
{
727727
video::IVideoDriver *driver = m_device->getVideoDriver();
728-
assert(driver);
728+
sanity_check(driver);
729729

730730
#ifdef __ANDROID__
731731
const GLubyte* renderstr = glGetString(GL_RENDERER);
@@ -741,9 +741,9 @@ video::ITexture* TextureSource::generateTextureFromMesh(
741741
) {
742742
// Get a scene manager
743743
scene::ISceneManager *smgr_main = m_device->getSceneManager();
744-
assert(smgr_main);
744+
sanity_check(smgr_main);
745745
scene::ISceneManager *smgr = smgr_main->createNewSceneManager();
746-
assert(smgr);
746+
sanity_check(smgr);
747747

748748
const float scaling = 0.2;
749749

@@ -978,7 +978,7 @@ video::IImage* TextureSource::generateImage(const std::string &name)
978978

979979

980980
video::IVideoDriver* driver = m_device->getVideoDriver();
981-
assert(driver);
981+
sanity_check(driver);
982982

983983
/*
984984
Parse out the last part of the name of the image and act
@@ -1078,7 +1078,7 @@ bool TextureSource::generateImagePart(std::string part_of_name,
10781078
video::IImage *& baseimg)
10791079
{
10801080
video::IVideoDriver* driver = m_device->getVideoDriver();
1081-
assert(driver);
1081+
sanity_check(driver);
10821082

10831083
// Stuff starting with [ are special commands
10841084
if (part_of_name.size() == 0 || part_of_name[0] != '[')
@@ -1106,7 +1106,7 @@ bool TextureSource::generateImagePart(std::string part_of_name,
11061106
//core::dimension2d<u32> dim(2,2);
11071107
core::dimension2d<u32> dim(1,1);
11081108
image = driver->createImage(video::ECF_A8R8G8B8, dim);
1109-
assert(image);
1109+
sanity_check(image != NULL);
11101110
/*image->setPixel(0,0, video::SColor(255,255,0,0));
11111111
image->setPixel(1,0, video::SColor(255,0,255,0));
11121112
image->setPixel(0,1, video::SColor(255,0,0,255));
@@ -1362,7 +1362,7 @@ bool TextureSource::generateImagePart(std::string part_of_name,
13621362
transform, baseimg->getDimension());
13631363
video::IImage *image = driver->createImage(
13641364
baseimg->getColorFormat(), dim);
1365-
assert(image);
1365+
sanity_check(image != NULL);
13661366
imageTransform(transform, baseimg, image);
13671367
baseimg->drop();
13681368
baseimg = image;
@@ -1422,7 +1422,7 @@ bool TextureSource::generateImagePart(std::string part_of_name,
14221422
(imagename_left + "__temp__").c_str(), img_left);
14231423
video::ITexture *texture_right = driver->addTexture(
14241424
(imagename_right + "__temp__").c_str(), img_right);
1425-
assert(texture_top && texture_left && texture_right);
1425+
FATAL_ERROR_IF(!(texture_top && texture_left && texture_right), "");
14261426

14271427
// Drop images
14281428
img_top->drop();
@@ -1476,7 +1476,7 @@ bool TextureSource::generateImagePart(std::string part_of_name,
14761476

14771477
// Create image of render target
14781478
video::IImage *image = driver->createImage(rtt, v2s32(0, 0), params.dim);
1479-
assert(image);
1479+
FATAL_ERROR_IF(!image, "Could not create image of render target");
14801480

14811481
// Cleanup texture
14821482
driver->removeTexture(rtt);
@@ -1892,10 +1892,10 @@ void imageTransform(u32 transform, video::IImage *src, video::IImage *dst)
18921892
if (src == NULL || dst == NULL)
18931893
return;
18941894

1895-
core::dimension2d<u32> srcdim = src->getDimension();
18961895
core::dimension2d<u32> dstdim = dst->getDimension();
18971896

1898-
assert(dstdim == imageTransformDimension(transform, srcdim));
1897+
// Pre-conditions
1898+
assert(dstdim == imageTransformDimension(transform, src->getDimension()));
18991899
assert(transform <= 7);
19001900

19011901
/*

src/clientiface.h

+6-3
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,12 @@ class ClientInterface {
426426
/* event to update client state */
427427
void event(u16 peer_id, ClientStateEvent event);
428428

429-
/* set environment */
430-
void setEnv(ServerEnvironment* env)
431-
{ assert(m_env == 0); m_env = env; }
429+
/* Set environment. Do not call this function if environment is already set */
430+
void setEnv(ServerEnvironment *env)
431+
{
432+
assert(m_env == NULL); // pre-condition
433+
m_env = env;
434+
}
432435

433436
static std::string state2Name(ClientState state);
434437

src/clientmap.cpp

-28
Original file line numberDiff line numberDiff line change
@@ -102,34 +102,6 @@ MapSector * ClientMap::emergeSector(v2s16 p2d)
102102
return sector;
103103
}
104104

105-
#if 0
106-
void ClientMap::deSerializeSector(v2s16 p2d, std::istream &is)
107-
{
108-
DSTACK(__FUNCTION_NAME);
109-
ClientMapSector *sector = NULL;
110-
111-
//JMutexAutoLock lock(m_sector_mutex); // Bulk comment-out
112-
113-
core::map<v2s16, MapSector*>::Node *n = m_sectors.find(p2d);
114-
115-
if(n != NULL)
116-
{
117-
sector = (ClientMapSector*)n->getValue();
118-
assert(sector->getId() == MAPSECTOR_CLIENT);
119-
}
120-
else
121-
{
122-
sector = new ClientMapSector(this, p2d);
123-
{
124-
//JMutexAutoLock lock(m_sector_mutex); // Bulk comment-out
125-
m_sectors.insert(p2d, sector);
126-
}
127-
}
128-
129-
sector->deSerialize(is);
130-
}
131-
#endif
132-
133105
void ClientMap::OnRegisterSceneNode()
134106
{
135107
if(IsVisible)

0 commit comments

Comments
 (0)