소스 검색

fixed enum_eq with type parameter

Nicolas Cannasse 8 년 전
부모
커밋
9df4160c55
1개의 변경된 파일5개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      src/std/types.c

+ 5 - 0
src/std/types.c

@@ -471,6 +471,11 @@ HL_PRIM bool hl_type_enum_eq( venum *a, venum *b ) {
 			{
 			{
 				vdynamic *pa = hl_make_dyn((char*)a + c->offsets[i],t);
 				vdynamic *pa = hl_make_dyn((char*)a + c->offsets[i],t);
 				vdynamic *pb = hl_make_dyn((char*)b + c->offsets[i],t);
 				vdynamic *pb = hl_make_dyn((char*)b + c->offsets[i],t);
+				if( pa && pb && pa->t->kind == HENUM && pb->t->kind == HENUM ) {
+					if( !hl_type_enum_eq((venum*)pa,(venum*)pb) )
+						return false;
+					continue;
+				}
 				if( hl_dyn_compare(pa,pb) )
 				if( hl_dyn_compare(pa,pb) )
 					return false;
 					return false;
 			}
 			}