Branch: Tag:

2010-11-19

2010-11-19 14:39:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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{ \