pike.git/src/program.h:879:
INT32 flags);
PMOD_EXPORT int simple_add_variable(const char *name,
const char *type,
INT32 flags);
PMOD_EXPORT int add_constant(struct pike_string *name,
const struct svalue *c,
INT32 flags);
PMOD_EXPORT int simple_add_constant(const char *name,
struct svalue *c,
INT32 flags);
- PMOD_EXPORT int add_integer_constant(const char *name,
- INT_ARG_TYPE i,
- INT32 flags);
+
PMOD_EXPORT int low_add_integer_constant(struct pike_string *name,
INT_ARG_TYPE i,
INT32 flags);
PMOD_EXPORT int quick_add_integer_constant(const char *name,
int name_length,
INT_ARG_TYPE i,
INT32 flags);
PMOD_EXPORT int add_float_constant(const char *name,
FLOAT_ARG_TYPE f,
INT32 flags);
pike.git/src/program.h:1078: Inside #if defined(PIKE_DEBUG)
#ifdef PIKE_DEBUG
dmalloc_touch(struct program*, p);
if (lfun < 0) return find_lfun_fatal(p, lfun);
#endif
if (p->flags & PROGRAM_FIXED && lfun < NUM_LFUNS) return p->lfuns[lfun];
return low_find_lfun(p, lfun);
}
#define quick_add_function(NAME, NLEN, FUNC, TYPE, TLEN, FLAGS, OPT) \
low_quick_add_function(__builtin_constant_p(NAME) \
- ? make_shared_static_string(NAME, NLEN, eightbit) \
- : make_shared_binary_string(NAME, NLEN), \
+ ? (make_shared_static_string(NAME, NLEN, eightbit)) \
+ : (fprintf(stderr, "creating non-static string %*s\n", (int)NLEN, NAME), make_shared_binary_string(NAME, NLEN)), \
FUNC, TYPE, TLEN, FLAGS, OPT)
-
+ #define add_integer_constant(NAME, VAL, FLAGS) low_add_integer_constant(make_shared_string(NAME), VAL, FLAGS)
-
+
#ifndef PIKE_USE_MACHINE_CODE
#define make_program_executable(X)
#endif
#define ADD_FUNCTION(NAME, FUNC, TYPE, FLAGS) \
quick_add_function(NAME, CONSTANT_STRLEN(NAME), FUNC, TYPE,\
CONSTANT_STRLEN(TYPE), FLAGS, \
OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND)
#define ADD_PROTOTYPE(NAME, TYPE, FLAGS) \
ADD_FUNCTION(NAME, 0, TYPE, FLAGS)
#define ADD_FUNCTION2(NAME, FUNC, TYPE, FLAGS, OPT_FLAGS) \
quick_add_function(NAME, CONSTANT_STRLEN(NAME), FUNC, TYPE,\
CONSTANT_STRLEN(TYPE), FLAGS, OPT_FLAGS)
#define ADD_PROTOTYPE2(NAME, TYPE, FLAGS, OPT_FLAGS) \
ADD_FUNCTION2(NAME, 0, TYPE, FLAGS, OPT_FLAGS)
#define ADD_INT_CONSTANT(NAME, CONST, FLAGS) \
- quick_add_integer_constant(NAME, CONSTANT_STRLEN(NAME), CONST, FLAGS)
+ low_add_integer_constant(make_shared_string(NAME), CONST, FLAGS)
#define ADD_FLOAT_CONSTANT(NAME, CONST, FLAGS) \
quick_add_float_constant(NAME, CONSTANT_STRLEN(NAME), CONST, FLAGS)
#define PIKE_MAP_VARIABLE(NAME, OFFSET, TYPE, RTTYPE, FLAGS) \
quick_map_variable(NAME, CONSTANT_STRLEN(NAME), OFFSET, \
TYPE, CONSTANT_STRLEN(TYPE), RTTYPE, FLAGS)
#define MAP_VARIABLE(NAME, TYPE, FLAGS, OFFSET, RTYPE) \
PIKE_MAP_VARIABLE(NAME, OFFSET, TYPE, RTYPE, FLAGS)