aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetReduce
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2012-11-06 13:36:54 -0500
committerErik Schnetter <schnetter@gmail.com>2012-11-06 13:36:54 -0500
commit1bdb022a5dec73500986edb41ea1c8e67c6c5fc5 (patch)
treed4c3a49b6aac669d3f38ffb5186ed5a584c8ec7f /Carpet/CarpetReduce
parent894cf0ab04227f28ce7fda66d493548e7ddd0728 (diff)
CarpetReduce: Do not access NULL pointer
Diffstat (limited to 'Carpet/CarpetReduce')
-rw-r--r--Carpet/CarpetReduce/src/reduce.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/Carpet/CarpetReduce/src/reduce.cc b/Carpet/CarpetReduce/src/reduce.cc
index dc24111da..9a8b804f5 100644
--- a/Carpet/CarpetReduce/src/reduce.cc
+++ b/Carpet/CarpetReduce/src/reduce.cc
@@ -976,8 +976,11 @@ namespace CarpetReduce {
#define FINALISE(OP,S) \
case do_##OP: { \
typedef typeconv<S>::goodtype T; \
- finalise<T,OP::op<T> > (&((char*)outvals)[vartypesize*n], \
- & counts [vartypesize*n]); \
+ void *const outval = &((char*)outvals)[vartypesize*n]; \
+ T dummy; \
+ void *const cnt = \
+ red->uses_cnt() ? (void*)&counts[vartypesize*n] : (void*)&dummy; \
+ finalise<T,OP::op<T> > (outval, cnt); \
break; \
}
#define TYPECASE(N,T) \