Przeglądaj źródła

Insert proper padding

Daniele Bartolini 8 lat temu
rodzic
commit
3c553ca0ad
1 zmienionych plików z 7 dodań i 0 usunięć
  1. 7 0
      src/resource/unit_compiler.cpp

+ 7 - 0
src/resource/unit_compiler.cpp

@@ -383,9 +383,16 @@ Buffer UnitCompiler::blob()
 			cd.num_instances = num;
 			cd.size = array::size(data) + sizeof(u32)*array::size(unit_index);
 
+			const u32 pad = cd.size % alignof(cd);
+			cd.size += pad;
+
 			array::push(buf, (char*)&cd, sizeof(cd));
 			array::push(buf, (char*)array::begin(unit_index), sizeof(u32)*array::size(unit_index));
 			array::push(buf, array::begin(data), array::size(data));
+
+			// Insert proper padding
+			for (u32 i = 0; i < pad; ++i)
+				array::push_back(buf, (char)0);
 		}
 	}