Nicolas Cannasse 9 år sedan
förälder
incheckning
e9794a6243
2 ändrade filer med 2 tillägg och 2 borttagningar
  1. 0 2
      src/callback.c
  2. 2 0
      src/std/cast.c

+ 0 - 2
src/callback.c

@@ -118,8 +118,6 @@ static void *hl_call_wrapper_ptr( vclosure_wrapper *c ) {
 		stack += hl_stack_size(t);
 	}
 	tret = c->cl.t->fun->ret;
-	if( tret->kind != HVOID )
-		hl_debug_break();
 	ret = hl_dyn_call(c->wrappedFun,args,nargs);
 	switch( tret->kind ) {
 	case HVOID:

+ 2 - 0
src/std/cast.c

@@ -109,6 +109,8 @@ HL_PRIM int hl_dyn_casti( void *data, hl_type *t, hl_type *to ) {
 }
 
 HL_PRIM void *hl_dyn_castp( void *data, hl_type *t, hl_type *to ) {
+	if( to->kind == HDYN && hl_is_dynamic(t) )
+		return *(vdynamic**)data;
 	if( t->kind == HDYN || t->kind == HNULL ) {
 		vdynamic *v = *(vdynamic**)data;
 		if( v == NULL ) return NULL;