MantisBT - VCMI
View Issue Details
0002771VCMIOtherpublic2017-08-14 09:502024-02-05 21:31
SXX 
SXX 
normalcrashalways
closedfixed 
macOS
1.next 
 
0002771: Build with Xcode 8.3.3 fail on assert in serialization
When Debug build made with Xcode 8.3.3 start of game fail with following error:
Assertion failed: (i->second.type() == typeid(VectorizedObjectInfo<T, U>)), function getVectorizedTypeInfo, 
file /Users/admin/dev/vcmi/client/../lib/serializer/CSerializer.h, line 102.


It's doesn't happen in Xcode 8.2.1.
No tags attached.
txt Xcode833_assert.txt (8,217) 2017-09-04 19:11
https://bugs.vcmi.eu/file_download.php?file_id=2779&type=bug
Issue History
2017-08-14 09:50SXXNew Issue
2017-08-14 09:50SXXStatusnew => assigned
2017-08-14 09:50SXXAssigned To => SXX
2017-08-14 09:51SXXOS => macOS
2017-08-14 14:55AVSNote Added: 0007229
2017-09-04 19:11SXXFile Added: Xcode833_assert.txt
2017-09-04 19:30SXXNote Added: 0007260
2017-09-04 20:38AVSNote Added: 0007261
2017-09-04 20:41AVSNote Added: 0007262
2017-09-06 16:42SXXNote Added: 0007265
2017-09-06 16:45AVSNote Added: 0007266
2017-09-06 16:47SXXNote Added: 0007267
2017-09-07 10:36AVSNote Added: 0007268
2024-02-05 21:31IvanStatusassigned => closed
2024-02-05 21:31IvanResolutionopen => fixed

Notes
(0007229)
AVS   
2017-08-14 14:55   
What are actual type names of i->second.type() and typeid(VectorizedObjectInfo<T, U>)?
(0007260)
SXX   
2017-09-04 19:30   
I uploaded the log and also get report that problem also present on FreeBSD with Clang 4.0.
(0007261)
AVS   
2017-09-04 20:38   
I see from log that VectorizedObjectInfo is probably valid Creature serilizer, but what is `i->second.type()`?
(0007262)
AVS   
2017-09-04 20:41   
I suspect typeinfo-related bug. What if we replace typeid comparing with type name comparing - or even remove that assertion.
(0007265)
SXX   
2017-09-06 16:42   
i->second-> content is:
content boost::any::holder<VectorizedObjectInfo<CCreature, CreatureID> > *      0x113f7e370     
0x0000000113f7e370

So I suppose it's it.
(0007266)
AVS   
2017-09-06 16:45   
Then just remove assertion, this is yet another typeinfo issue on osx
(0007267)
SXX   
2017-09-06 16:47   
Question is: why it's only occur in newer Xcode.

Also I guess this could easily be in new Clang on other platforms as well.
(0007268)
AVS   
2017-09-07 10:36   
We should replace all typeinfo comparisons with name comparison like in TypeComparer