Module: Mesa Branch: master Commit: 09db4940eede4236b47e1328503a719719f5c981 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=09db4940eede4236b47e1328503a719719f5c981
Author: Eric Anholt <e...@anholt.net> Date: Thu Nov 21 23:29:56 2013 -0800 mesa: Remove the ralloc canary on release builds. The canary is basically just to give a better debugging message when you ralloc_free() something that wasn't rallocated. Reduces maximum memory usage of apitrace replay of the dota2 demo by 60MB on my 64-bit system (so half that on a real 32-bit dota2 environment). Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> --- src/glsl/ralloc.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/glsl/ralloc.c b/src/glsl/ralloc.c index e79dad7..36bc61f 100644 --- a/src/glsl/ralloc.c +++ b/src/glsl/ralloc.c @@ -53,8 +53,10 @@ _CRTIMP int _vscprintf(const char *format, va_list argptr); struct ralloc_header { +#ifdef DEBUG /* A canary value used to determine whether a pointer is ralloc'd. */ unsigned canary; +#endif struct ralloc_header *parent; @@ -78,7 +80,9 @@ get_header(const void *ptr) { ralloc_header *info = (ralloc_header *) (((char *) ptr) - sizeof(ralloc_header)); +#ifdef DEBUG assert(info->canary == CANARY); +#endif return info; } @@ -117,7 +121,9 @@ ralloc_size(const void *ctx, size_t size) add_child(parent, info); +#ifdef DEBUG info->canary = CANARY; +#endif return PTR_FROM_HEADER(info); } _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit