From 02a23c7b0dcd19dc9c46ba15d5af71569146ffa7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 25 Nov 1999 17:40:26 +0100
Subject: [PATCH] Added support for runtime checks of soft casts.

Rev: src/interpreter.h:1.19
---
 src/interpreter.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/interpreter.h b/src/interpreter.h
index 9f26933c71..9da06d84d3 100644
--- a/src/interpreter.h
+++ b/src/interpreter.h
@@ -1285,6 +1285,22 @@ static int eval_instruction(unsigned char *pc)
 
       CASE(F_CAST); f_cast(); break;
 
+      CASE(F_SOFT_CAST);
+#ifdef PIKE_DEBUG
+      if (d_flag) {
+	/* FIXME: Perform a type-check here */
+	/* Stack: type_string, value */
+	if (d_flag > 1) {
+	  struct pike_string *t = describe_type(sp[-2].u.string);
+	  fprintf(stderr, "Soft cast to %s\n", t->str);
+	  free_string(t);
+	}
+      }
+#endif /* PIKE_DEBUG */
+      stack_swap();
+      pop_stack();
+      break;
+
       CASE(F_RANGE); o_range(); break;
       CASE(F_COPY_VALUE);
       {
-- 
GitLab