@@ -189,29 +189,35 @@ void Model::load_node(const tinygltf::Node &inputNode, const tinygltf::Model &in
189189 // glTF supports different component types of indices.
190190 switch (accessor.componentType ) {
191191 case TINYGLTF_PARAMETER_TYPE_UNSIGNED_INT: {
192- uint32_t *buf = new uint32_t [accessor.count ];
193- memcpy (buf, &buffer.data [accessor.byteOffset + bufferView.byteOffset ],
194- accessor.count * sizeof (uint32_t ));
192+ std::vector<std::uint32_t > added_indices (accessor.count );
193+
194+ std::memcpy (added_indices.data (), &buffer.data [accessor.byteOffset + bufferView.byteOffset ],
195+ accessor.count * sizeof (uint32_t ));
196+
195197 for (size_t index = 0 ; index < accessor.count ; index++) {
196- indexBuffer.push_back (buf [index] + vertexStart);
198+ indexBuffer.push_back (added_indices [index] + vertexStart);
197199 }
198200 break ;
199201 }
200202 case TINYGLTF_PARAMETER_TYPE_UNSIGNED_SHORT: {
201- uint16_t *buf = new uint16_t [accessor.count ];
202- memcpy (buf, &buffer.data [accessor.byteOffset + bufferView.byteOffset ],
203- accessor.count * sizeof (uint16_t ));
203+ std::vector<std::uint16_t > added_indices (accessor.count );
204+
205+ std::memcpy (added_indices.data (), &buffer.data [accessor.byteOffset + bufferView.byteOffset ],
206+ accessor.count * sizeof (uint16_t ));
207+
204208 for (size_t index = 0 ; index < accessor.count ; index++) {
205- indexBuffer.push_back (buf [index] + vertexStart);
209+ indexBuffer.push_back (added_indices [index] + vertexStart);
206210 }
207211 break ;
208212 }
209213 case TINYGLTF_PARAMETER_TYPE_UNSIGNED_BYTE: {
210- uint8_t *buf = new uint8_t [accessor.count ];
211- memcpy (buf, &buffer.data [accessor.byteOffset + bufferView.byteOffset ],
212- accessor.count * sizeof (uint8_t ));
214+ std::vector<std::uint8_t > added_indices (accessor.count );
215+
216+ std::memcpy (added_indices.data (), &buffer.data [accessor.byteOffset + bufferView.byteOffset ],
217+ accessor.count * sizeof (uint8_t ));
218+
213219 for (size_t index = 0 ; index < accessor.count ; index++) {
214- indexBuffer.push_back (buf [index] + vertexStart);
220+ indexBuffer.push_back (added_indices [index] + vertexStart);
215221 }
216222 break ;
217223 }
0 commit comments