From 007961e680934d8a88b92454113d7294634e7645 Mon Sep 17 00:00:00 2001 From: Per Hedbor <ph@opera.com> Date: Tue, 30 Sep 2014 21:22:38 +0200 Subject: [PATCH] Commited forgotten support function --- src/pike_types.c | 9 +++++++++ src/pike_types.h | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/pike_types.c b/src/pike_types.c index a500594e48..34c9dc2e90 100644 --- a/src/pike_types.c +++ b/src/pike_types.c @@ -755,8 +755,17 @@ void debug_push_int_type(INT_TYPE min, INT_TYPE max) TYPE_STACK_DEBUG("push_int_type"); } +static int (*program_id_to_id)(int) = NULL; + +PMOD_EXPORT void set_program_id_to_id( int (*to)(int) ) +{ + program_id_to_id = to; +} + void debug_push_object_type(int flag, INT32 id) { + if( program_id_to_id ) + id = program_id_to_id(id); *(++Pike_compiler->type_stackp) = mk_type(T_OBJECT, (void *)(ptrdiff_t)flag, (void *)(ptrdiff_t)id, 0); diff --git a/src/pike_types.h b/src/pike_types.h index 8991d7bd73..d83b2e7815 100644 --- a/src/pike_types.h +++ b/src/pike_types.h @@ -324,6 +324,10 @@ struct pike_string *type_to_string(struct pike_type *t); int pike_type_allow_premature_toss(struct pike_type *type); void register_attribute_handler(struct pike_string *attr, struct svalue *handler); + +/* used by the precompiler to get the correct object types */ +PMOD_EXPORT void set_program_id_to_id( int (*to)(int) ); + /* Prototypes end here */ #define visit_type_ref(T, REF_TYPE, EXTRA) \ -- GitLab