Просмотр исходного кода

add an assert to catch unknown opcodes earlier

James Fulop 6 лет назад
Родитель
Сommit
e6ba3e49af
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      src/shader_dxbc.cpp

+ 2 - 0
src/shader_dxbc.cpp

@@ -1065,6 +1065,8 @@ namespace bgfx
 		// +-------------------------------- extended
 		// +-------------------------------- extended
 
 
 		_instruction.opcode = DxbcOpcode::Enum( (token & UINT32_C(0x000007ff) )      );
 		_instruction.opcode = DxbcOpcode::Enum( (token & UINT32_C(0x000007ff) )      );
+		BX_CHECK(_instruction.opcode < DxbcOpcode::Enum::Count, "unknown opcode");
+		
 		_instruction.length =          uint8_t( (token & UINT32_C(0x7f000000) ) >> 24);
 		_instruction.length =          uint8_t( (token & UINT32_C(0x7f000000) ) >> 24);
 		bool extended       =              0 != (token & UINT32_C(0x80000000) );
 		bool extended       =              0 != (token & UINT32_C(0x80000000) );