diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2013-04-19 22:59:50 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2013-04-19 22:59:50 +0200 |
commit | bc4f25337e048db7d7ec86cfb116cc3768473ff5 (patch) | |
tree | 7828f7a54a14c6e4d605b021f81c280dba955df6 | |
parent | abc0caf95536a4001615f863860a091d6bc55973 (diff) |
More pointer sanity checks
-rw-r--r-- | src/drumgizmo.cc | 4 | ||||
-rw-r--r-- | src/drumkitloader.cc | 8 |
2 files changed, 5 insertions, 7 deletions
diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc index ba167b4..c30147f 100644 --- a/src/drumgizmo.cc +++ b/src/drumgizmo.cc @@ -263,9 +263,7 @@ bool DrumGizmo::run(size_t pos, sample_t *samples, size_t nsamples) i = kit.instruments[d]; } - if(!i->isValid()) continue; - - if(i == NULL) { + if(i == NULL || !i->isValid()) { ERR(drumgizmo, "Missing Instrument %d.\n", evs[e].instrument); continue; } diff --git a/src/drumkitloader.cc b/src/drumkitloader.cc index 45dcec3..be74624 100644 --- a/src/drumkitloader.cc +++ b/src/drumkitloader.cc @@ -81,13 +81,13 @@ void DrumKitLoader::thread_main() unsigned int count = 0; - if(!kit->isValid()) goto finish; + if(kit && !kit->isValid()) goto finish; { // Count total number of files that need loading: Instruments::iterator i = kit->instruments.begin(); while(i != kit->instruments.end()) { Instrument *instr = *i; - if(!instr->isValid()) goto finish; + if(instr && !instr->isValid()) goto finish; count += instr->audiofiles.size(); i++; @@ -100,7 +100,7 @@ void DrumKitLoader::thread_main() while(i != kit->instruments.end()) { Instrument *instr = *i; - if(!instr->isValid()) goto finish; + if(instr && !instr->isValid()) goto finish; std::vector<AudioFile*>::iterator a = instr->audiofiles.begin(); while(a != instr->audiofiles.end()) { @@ -113,7 +113,7 @@ void DrumKitLoader::thread_main() #endif AudioFile *af = *a; - if(!af->isValid()) goto finish; + if(af && !af->isValid()) goto finish; af->load(); loaded++; |