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