From 71e54ee703d028f8776b82eafde6414adbc9719e Mon Sep 17 00:00:00 2001
From: Martin Nilsson <nilsson@opera.com>
Date: Mon, 18 Aug 2014 20:10:47 +0200
Subject: [PATCH] Fixed casting bug.

---
 src/operators.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/operators.c b/src/operators.c
index ab50c2c6c9..1b69832ea8 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -513,6 +513,11 @@ PMOD_EXPORT void o_cast(struct pike_type *type, INT32 run_time_type)
 
       stack_pop_keep_top();
 
+      if(TYPEOF(sp[-1]) == T_INT &&
+         SUBTYPEOF(sp[-1]) == NUMBER_UNDEFINED)
+        Pike_error("Cannot cast this object to %s.\n",
+                   get_name_of_type(type->type));
+
     } else
 
     switch(run_time_type)
@@ -724,11 +729,6 @@ PMOD_EXPORT void o_cast(struct pike_type *type, INT32 run_time_type)
     }
   }
 
-  if(TYPEOF(sp[-1]) == T_INT &&
-     SUBTYPEOF(sp[-1]) == NUMBER_UNDEFINED)
-    Pike_error("Cannot cast this object to %s.\n",
-               get_name_of_type(type->type));
-
   if(run_time_type != TYPEOF(sp[-1]))
   {
     switch(TYPEOF(sp[-1])) {
-- 
GitLab