summaryrefslogtreecommitdiffstats
path: root/generic/tcl.h
diff options
context:
space:
mode:
authorhobbs <hobbs>2007-10-02 21:54:05 (GMT)
committerhobbs <hobbs>2007-10-02 21:54:05 (GMT)
commit59e65563264c3248be60d5386869e66413d0f859 (patch)
treee84de1a93bd53a28aedb593e328a0841e9d3c867 /generic/tcl.h
parente1a0a36aa605b4676909544d263a0986deb1d1ee (diff)
downloadtcl-59e65563264c3248be60d5386869e66413d0f859.zip
tcl-59e65563264c3248be60d5386869e66413d0f859.tar.gz
tcl-59e65563264c3248be60d5386869e66413d0f859.tar.bz2
* generic/tcl.h (Tcl_DecrRefCount): Update change from 2006-05-29
to make macro more warning-robust in unbraced if code.
Diffstat (limited to 'generic/tcl.h')
-rw-r--r--generic/tcl.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index fc31543..4914058 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tcl.h,v 1.237 2007/10/02 18:27:29 dgp Exp $
+ * RCS: @(#) $Id: tcl.h,v 1.238 2007/10/02 21:54:06 hobbs Exp $
*/
#ifndef _TCL
@@ -2296,10 +2296,11 @@ EXTERN CONST char *Tcl_PkgInitStubsCheck _ANSI_ARGS_((Tcl_Interp *interp,
# define Tcl_IncrRefCount(objPtr) \
++(objPtr)->refCount
/*
- * Use empty if ; else to handle use in unbraced outer if/else conditions
+ * Use do/while0 idiom for optimum correctness without compiler warnings
+ * http://c2.com/cgi/wiki?TrivialDoWhileLoop
*/
# define Tcl_DecrRefCount(objPtr) \
- if (--(objPtr)->refCount > 0) ; else TclFreeObj(objPtr)
+ do { if (--(objPtr)->refCount <= 0) TclFreeObj(objPtr); } while(0)
# define Tcl_IsShared(objPtr) \
((objPtr)->refCount > 1)
#endif