Browse Source

haxe unit tests fixes

Nicolas Cannasse 8 years ago
parent
commit
56d60b9a45
3 changed files with 8 additions and 7 deletions
  1. 5 4
      src/std/cast.c
  2. 1 1
      src/std/obj.c
  3. 2 2
      src/std/types.c

+ 5 - 4
src/std/cast.c

@@ -20,6 +20,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 #include <hl.h>
+#include <math.h>
 
 #define TK2(a,b)		((a) | ((b)<<5))
 
@@ -445,16 +446,16 @@ HL_PRIM vdynamic *hl_dyn_op( int op, vdynamic *a, vdynamic *b ) {
 		case OP_SUB: FOP(-);
 		case OP_MUL: FOP(*);
 		case OP_MOD: {
-			double va = hl_dyn_castd(a,&hlt_dyn);
-			double vb = hl_dyn_castd(b,&hlt_dyn);
+			double va = hl_dyn_castd(&a,&hlt_dyn);
+			double vb = hl_dyn_castd(&b,&hlt_dyn);
 			return hl_dynf64(fmod(va,vb));
 		}
 		case OP_DIV: FOP(/);
 		case OP_SHL: IOP(<<);
 		case OP_SHR: IOP(>>);
 		case OP_USHR: {
-			int va = hl_dyn_casti(a,&hlt_dyn,&hlt_i32);
-			int vb = hl_dyn_casti(b,&hlt_dyn,&hlt_i32);
+			int va = hl_dyn_casti(&a,&hlt_dyn,&hlt_i32);
+			int vb = hl_dyn_casti(&b,&hlt_dyn,&hlt_i32);
 			return hl_dyni32( ((unsigned)va) >> ((unsigned)vb) );
 		}
 		case OP_AND: IOP(&);

+ 1 - 1
src/std/obj.c

@@ -430,7 +430,7 @@ vvirtual *hl_to_virtual( hl_type *vt, vdynamic *obj ) {
 	vvirtual *v = NULL;
 	if( obj == NULL ) return NULL;
 #ifdef _DEBUG
-	if( vt->virt->lookup == NULL ) hl_fatal("virtual not initialized");
+	if( vt->virt->nfields && vt->virt->lookup == NULL ) hl_fatal("virtual not initialized");
 #endif
 	switch( obj->t->kind ) {
 	case HOBJ:

+ 2 - 2
src/std/types.c

@@ -505,7 +505,7 @@ HL_PRIM bool hl_type_enum_eq( vdynamic *a, vdynamic *b ) {
 	return true;
 }
 
-HL_PRIM vdynamic *hl_alloc_enum( hl_type *t, int index, varray *args, int nargs ) {
+HL_PRIM vdynamic *hl_alloc_enum_dyn( hl_type *t, int index, varray *args, int nargs ) {
 	hl_enum_construct *c = t->tenum->constructs + index;
 	venum *e;
 	vdynamic *v;
@@ -541,6 +541,6 @@ DEFINE_PRIM(_DYN, type_get_global, _TYPE);
 DEFINE_PRIM(_ARR, type_enum_fields, _TYPE);
 DEFINE_PRIM(_ARR, type_enum_values, _TYPE);
 DEFINE_PRIM(_BOOL, type_enum_eq, _DYN _DYN);
-DEFINE_PRIM(_DYN, alloc_enum, _TYPE _I32 _ARR _I32);
+DEFINE_PRIM(_DYN, alloc_enum_dyn, _TYPE _I32 _ARR _I32);
 DEFINE_PRIM(_ARR, enum_parameters, _DYN);
 DEFINE_PRIM(_BOOL, type_set_global, _TYPE _DYN);