mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
don't crash loading old bam files
This commit is contained in:
parent
a11b778aab
commit
202acf938b
@ -1685,13 +1685,20 @@ complete_pointers(TypedWritable **p_list, BamReader *manager) {
|
||||
int pi = TypedWritable::complete_pointers(p_list, manager);
|
||||
|
||||
// Get the attribute pointers.
|
||||
Attributes::iterator ai;
|
||||
for (ai = _attributes.begin(); ai != _attributes.end(); ++ai) {
|
||||
Attribute &attribute = (*ai);
|
||||
for (size_t i = 0; i < _attributes.size(); ++i) {
|
||||
Attribute &attribute = _attributes[i];
|
||||
|
||||
attribute._attrib = DCAST(RenderAttrib, p_list[pi++]);
|
||||
nassertr(attribute._attrib != (RenderAttrib *)NULL, pi);
|
||||
attribute._type = attribute._attrib->get_type();
|
||||
TypedWritable *ptr = p_list[pi++];
|
||||
while (ptr == NULL && i < _attributes.size()) {
|
||||
// This is an attribute that we weren't able to load from the
|
||||
// bam file. Remove it.
|
||||
_attributes.pop_back();
|
||||
ptr = p_list[pi++];
|
||||
}
|
||||
if (i < _attributes.size()) {
|
||||
attribute._attrib = DCAST(RenderAttrib, ptr);
|
||||
attribute._type = attribute._attrib->get_type();
|
||||
}
|
||||
}
|
||||
|
||||
// Now make sure the array is properly sorted. (It won't
|
||||
|
Loading…
x
Reference in New Issue
Block a user