diff options
| author | 2011-03-25 14:52:22 -0700 | |
|---|---|---|
| committer | 2011-03-25 14:52:22 -0700 | |
| commit | e80b8736d660cf8a27e1bbfa3d546b3e8ae57548 (patch) | |
| tree | 2380e0d3ad151558c6bbd62dd06330618c9658f6 /libs | |
| parent | bad2506ae9b879979a9fdc11e15bced2445c0c9b (diff) | |
| parent | 623cb9585e110ecc11b48a12bf4a02efd5293aaa (diff) | |
Merge "Properly handle script teardown."
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/rs/driver/rsdBcc.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libs/rs/driver/rsdBcc.cpp b/libs/rs/driver/rsdBcc.cpp index 2038a4c0c767..6c5a55be85ed 100644 --- a/libs/rs/driver/rsdBcc.cpp +++ b/libs/rs/driver/rsdBcc.cpp @@ -522,7 +522,11 @@ void rsdScriptDestroy(const Context *dc, Script *script) { if (drv->mFieldAddress) { for (size_t ct=0; ct < drv->mFieldCount; ct++) { if (drv->mFieldIsObject[ct]) { - rsiClearObject((ObjectBase **)&drv->mFieldAddress[ct]); + // The field address can be NULL if the script-side has + // optimized the corresponding global variable away. + if (drv->mFieldAddress[ct]) { + rsiClearObject((ObjectBase **)drv->mFieldAddress[ct]); + } } } delete [] drv->mFieldAddress; |