mirror of https://github.com/AxioDL/amuse.git
Fix NameDB and Voice related crashes
This commit is contained in:
parent
1884e0ca7a
commit
d9018e2d2e
|
@ -63,7 +63,7 @@ std::pair<ObjToken<SampleEntryData>, const unsigned char*>
|
|||
const_cast<SampleEntry*>(sample)->loadLooseData(basePath);
|
||||
return {sample->m_data, sample->m_data->m_looseData.get()};
|
||||
}
|
||||
return std::make_pair(ObjToken<SampleEntryData>(), m_samp + sample->m_data->m_sampleOff);
|
||||
return {sample->m_data, m_samp + sample->m_data->m_sampleOff};
|
||||
}
|
||||
|
||||
SampleFileState AudioGroup::getSampleFileState(SampleId sfxId, const SampleEntry* sample, SystemString* pathOut) const
|
||||
|
|
|
@ -46,7 +46,8 @@ static void ReadRangedObjectIds(NameDB* db, athena::io::IStreamReader& r, NameDB
|
|||
useId.id |= 0x8000;
|
||||
else if (tp == NameDB::Type::Keymap)
|
||||
useId.id |= 0x4000;
|
||||
db->registerPair(NameDB::generateName(useId, tp), useId);
|
||||
if (db)
|
||||
db->registerPair(NameDB::generateName(useId, tp), useId);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -55,7 +56,8 @@ static void ReadRangedObjectIds(NameDB* db, athena::io::IStreamReader& r, NameDB
|
|||
id |= 0x8000;
|
||||
else if (tp == NameDB::Type::Keymap)
|
||||
id |= 0x4000;
|
||||
db->registerPair(NameDB::generateName(id, tp), id);
|
||||
if (db)
|
||||
db->registerPair(NameDB::generateName(id, tp), id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,7 +99,8 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
|||
GroupHeader<athena::Big> header;
|
||||
header.read(r);
|
||||
|
||||
GroupId::CurNameDB->registerPair(NameDB::generateName(header.groupId, NameDB::Type::Group), header.groupId);
|
||||
if (GroupId::CurNameDB)
|
||||
GroupId::CurNameDB->registerPair(NameDB::generateName(header.groupId, NameDB::Type::Group), header.groupId);
|
||||
|
||||
/* Sound Macros */
|
||||
r.seek(header.soundMacroIdsOff, athena::Begin);
|
||||
|
@ -156,7 +159,8 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
|||
std::array<SongGroupIndex::MIDISetup, 16>& setup = idx->m_midiSetups[songId];
|
||||
for (int i = 0; i < 16 ; ++i)
|
||||
setup[i].read(r);
|
||||
SongId::CurNameDB->registerPair(NameDB::generateName(songId, NameDB::Type::Song), songId);
|
||||
if (SongId::CurNameDB)
|
||||
SongId::CurNameDB->registerPair(NameDB::generateName(songId, NameDB::Type::Song), songId);
|
||||
}
|
||||
}
|
||||
else if (header.type == GroupType::SFX)
|
||||
|
@ -174,7 +178,8 @@ AudioGroupProject::AudioGroupProject(athena::io::IStreamReader& r, GCNDataTag)
|
|||
SFXGroupIndex::SFXEntryDNA<athena::Big> entry;
|
||||
entry.read(r);
|
||||
idx->m_sfxEntries[entry.sfxId.id] = entry;
|
||||
SFXId::CurNameDB->registerPair(
|
||||
if (SFXId::CurNameDB)
|
||||
SFXId::CurNameDB->registerPair(
|
||||
NameDB::generateName(entry.sfxId.id, NameDB::Type::SFX), entry.sfxId.id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,8 @@ AudioGroupSampleDirectory::AudioGroupSampleDirectory(athena::io::IStreamReader&
|
|||
EntryDNA<athena::Big> ent;
|
||||
ent.read(r);
|
||||
m_entries[ent.m_sfxId] = MakeObj<Entry>(ent);
|
||||
SampleId::CurNameDB->registerPair(NameDB::generateName(ent.m_sfxId, NameDB::Type::Sample), ent.m_sfxId);
|
||||
if (SampleId::CurNameDB)
|
||||
SampleId::CurNameDB->registerPair(NameDB::generateName(ent.m_sfxId, NameDB::Type::Sample), ent.m_sfxId);
|
||||
}
|
||||
|
||||
for (auto& p : m_entries)
|
||||
|
|
Loading…
Reference in New Issue