Mercurial > hg > dmlib
diff dmengine.c @ 369:e1c984404b6b
Re-entrancy.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 17 Oct 2012 00:23:36 +0300 |
parents | 08ea68abb1f8 |
children | a7ee3567f718 |
line wrap: on
line diff
--- a/dmengine.c Wed Oct 17 00:01:46 2012 +0300 +++ b/dmengine.c Wed Oct 17 00:23:36 2012 +0300 @@ -53,7 +53,7 @@ for (i = 0; i < nengineEffects; i++) { if (engineEffects[i].init != NULL && - (res = engineEffects[i].init(engine, &engine->effectData[i])) != DMERR_OK) + (res = engineEffects[i].init(engine, &(engine->effectData[i]))) != DMERR_OK) return res; } @@ -63,14 +63,17 @@ void engineShutdownEffects(DMEngineData *engine) { - int i; - for (i = 0; i < nengineEffects; i++) + if (engine != NULL && engine->effectData != NULL) { - if (engineEffects[i].shutdown != NULL) - engineEffects[i].shutdown(engine, engine->effectData[i]); + int i; + for (i = 0; i < nengineEffects; i++) + { + if (engineEffects[i].shutdown != NULL) + engineEffects[i].shutdown(engine, engine->effectData[i]); + } + dmFree(engine->effectData); + engine->effectData = NULL; } - dmFree(engine->effectData); - engine->effectData = NULL; }