crossfire-cvs-admin at lists.sourceforge.net wrote: > Module Name: client > Committed By: ryo_saeba > Date: Mon Sep 5 20:16:53 UTC 2005 [...] > Index: client/ChangeLog [...] > + common/mapdata.c: remove parasite #define NDEBUG [...] > Index: client/common/mapdata.c > diff -c client/common/mapdata.c:1.1 client/common/mapdata.c:1.2 > *** client/common/mapdata.c:1.1 Wed Aug 31 14:57:23 2005 > --- client/common/mapdata.c Mon Sep 5 13:16:53 2005 > *************** > *** 21,27 **** > The author can be reached via e-mail to crossfire-devel at real-time.com > */ > > - #define NDEBUG > #include <assert.h> > > #include "client.h" > --- 21,26 ---- It was very intentional that I left in this #define NDEBUG: The module mapdata contains quite a few assert() statements. Some functions (notably mapdata_face() and mapdata_bigface()) may be called very often in certain situations. (These two functions probably will be called more than 1000 times each second if the player is running and uses a large view area.) I'm fairly sure that none of these assert() statements will ever trigger, but I did not remove them just because they could be useful for debugging at a later time. To not waste (cpu) resources, I just disabled them. This is why I left in the "parasite #define NDEBUG" just before "#include <assert.h>": Ansi C specifies that if the preprocessor symbol NDEBUG is defined at the time <assert.h> is included, the macro assert() does nothing at all. That is, after the removal now all the assert() statements are enabled (thus probably wasting lots of cpu time). OTOH, I didn't feel to just disable all assert() statements in the whole client by adding -DNDEBUG to the build system since I think assert() statements should always be enabled if possible.