pike.git/
src/
svalue.h
Branch:
Tag:
Non-build tags
All tags
No tags
1997-01-31
1997-01-31 23:04:02 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
d3d172c2325a5f9e70eba13919ff4a2413546f6d (
10
lines) (+
6
/-
4
)
[
Show
|
Annotate
]
Branch:
7.9
some functions converted to macros for speed
Rev: src/svalue.c:1.6
Rev: src/svalue.h:1.5
169:
#endif
+
#define free_svalue(X) do { struct svalue *_s=(X); check_type(_s->type); check_refs(_s); if(_s->type<=MAX_REF_TYPE && --*(_s->u.refs) <=0) really_free_svalue(_s); }while(0)
+
#define assign_svalue_no_free(X,Y) do { struct svalue _tmp, *_to=(X), *_from=(Y); check_type(_from->type); check_refs(_from); *_to=_tmp=*_from; if(_tmp.type <= MAX_REF_TYPE) _tmp.u.refs[0]++; }while(0)
+
#define assign_svalue(X,Y) do { struct svalue *_to2=(X), *_from2=(Y); free_svalue(_to2); assign_svalue_no_free(_to2, _from2); }while(0)
+
extern struct svalue dest_ob_zero; /* Prototypes begin here */ void free_short_svalue(union anything *s,TYPE_T type);
-
void free_svalue(struct svalue *s);
+
void
really_
free_svalue(struct svalue *s);
void free_svalues(struct svalue *s,INT32 num, INT32 type_hint);
-
void assign_svalue_no_free(struct svalue *to,
-
struct svalue *from);
+
void assign_svalues_no_free(struct svalue *to, struct svalue *from, INT32 num, INT32 type_hint);
-
void assign_svalue(struct svalue *to, struct svalue *from);
+
void assign_svalues(struct svalue *to, struct svalue *from, INT32 num,