У меня очень странный сбой при использовании компилятора Apple LLVM 3.0.
Итак, есть некоторый код, который использует Assimp для загрузки ресурсов и создания сцены (я исключил весь свой код, и даже тогда он вылетает):
aiScene* ai_scene = const_cast<aiScene*>(aiImportFileFromMemory(fileBuf, fInfo.uncompressed_size, aiProcessPreset_TargetRealtime_MaxQuality, NULL));
delete ai_scene;
Вот скриншот трассировки стека для GCC:
А вот для LLVM:
В версии LLVM деструктор вызывается дважды (и, вероятно, именно поэтому у меня происходит сбой).
Следует также упомянуть, что весь код деструктора находится в заголовочном файле и вылетает только на устройстве (протестировано на iPod 4 и iPad 2).
Это ошибка в компиляторе LLVM (возможно, при генерации сборки рукава) или я что-то упустил?
Редактировать:
, если у кого-то есть подобная проблема, используйте aiReleaseImport(scene)
вместо delete scene;