pike.git/
src/
interpret.h
Branch:
Tag:
Non-build tags
All tags
No tags
2010-11-19
2010-11-19 14:39:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>
996aa53807d84841ec7d955321d0b358bd0a3fc2 (
23
lines) (+
21
/-
2
)
[
Show
|
Annotate
]
Branch:
7.9
Clear the svalue subtype in some more cases when __CHECKER__ is active.
2:
|| This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information.
-
||
$Id: interpret.h,v 1.181 2010/03/24 20:47:54 mast Exp $
+
||
$Id$
*/ #ifndef INTERPRET_H
201:
#define STACK_LEVEL_CHECK(depth) #endif /* PIKE_DEBUG */
+
#ifdef __CHECKER__
+
#define IF_CHECKER(X) X
+
#else
+
#define IF_CHECKER(X)
+
#endif
+
#define pop_stack() do{ free_svalue(--Pike_sp); debug_check_stack(); }while(0) #define pop_2_elems() do { pop_stack(); pop_stack(); }while(0)
267:
struct svalue *_sp_ = Pike_sp++; \ debug_malloc_touch(_); \ _sp_->u.program=_; \
-
_sp_
++
->type=PIKE_T_PROGRAM; \
+
_sp_->type=PIKE_T_PROGRAM;
\
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define push_int(I) do{ \
290:
struct svalue *_sp_ = Pike_sp++; \ _sp_->u.identifier=_; \ _sp_->type=T_OBJ_INDEX; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define push_mapping(M) do{ \
298:
debug_malloc_touch(_); \ _sp_->u.mapping=_; \ _sp_->type=PIKE_T_MAPPING; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define push_array(A) do{ \
306:
debug_malloc_touch(_); \ _sp_->u.array=_ ; \ _sp_->type=PIKE_T_ARRAY; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define push_empty_array() ref_push_array(&empty_array)
316:
debug_malloc_touch(_); \ _sp_->u.multiset=_; \ _sp_->type=PIKE_T_MULTISET; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define push_string(S) do { \
339:
debug_malloc_touch(_); \ _sp_->u.type=_; \ _sp_->type=PIKE_T_TYPE; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define push_object(O) do { \
365:
struct svalue *_sp_ = Pike_sp++; \ _sp_->u.float_number=_; \ _sp_->type=PIKE_T_FLOAT; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define push_text(T) do { \
404:
add_ref(_); \ _sp_->u.program=_; \ _sp_->type=PIKE_T_PROGRAM; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define ref_push_mapping(M) do{ \
412:
add_ref(_); \ _sp_->u.mapping=_; \ _sp_->type=PIKE_T_MAPPING; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define ref_push_array(A) do{ \
420:
add_ref(_); \ _sp_->u.array=_ ; \ _sp_->type=PIKE_T_ARRAY; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define ref_push_multiset(L) do{ \
428:
add_ref(_); \ _sp_->u.multiset=_; \ _sp_->type=PIKE_T_MULTISET; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define ref_push_string(S) do{ \
449:
add_ref(_); \ _sp_->u.type=_; \ _sp_->type=PIKE_T_TYPE; \
+
IF_CHECKER(_sp_->subtype=0); \
}while(0) #define ref_push_object(O) do{ \