diff options
author | Eugene Sandulenko | 2013-07-04 04:58:54 -0700 |
---|---|---|
committer | Eugene Sandulenko | 2013-07-04 04:58:54 -0700 |
commit | 49210a803a53b84bcabe42fd339a1b205236c34d (patch) | |
tree | d5916067b55404324fb70a3d3ee0a8f672f92679 /common/EventDispatcher.cpp | |
parent | 2b980e86e3db2ebc2279761ba29c0be4f24e03dc (diff) | |
parent | b286a6d033287dce11dfa4216ad11728b892667d (diff) | |
download | scummvm-rg350-49210a803a53b84bcabe42fd339a1b205236c34d.tar.gz scummvm-rg350-49210a803a53b84bcabe42fd339a1b205236c34d.tar.bz2 scummvm-rg350-49210a803a53b84bcabe42fd339a1b205236c34d.zip |
Merge pull request #331 from sev-/gsoc2012-eventsrecorder
GSoC2012: Event Recorder (reworked)
Diffstat (limited to 'common/EventDispatcher.cpp')
-rw-r--r-- | common/EventDispatcher.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/common/EventDispatcher.cpp b/common/EventDispatcher.cpp index 012a2dfce5..dc123e8f8f 100644 --- a/common/EventDispatcher.cpp +++ b/common/EventDispatcher.cpp @@ -38,7 +38,9 @@ EventDispatcher::~EventDispatcher() { delete i->observer; } - delete _mapper; + if (_autoFreeMapper) { + delete _mapper; + } _mapper = 0; } @@ -68,11 +70,15 @@ void EventDispatcher::dispatch() { } } -void EventDispatcher::registerMapper(EventMapper *mapper) { - delete _mapper; +void EventDispatcher::registerMapper(EventMapper *mapper, bool autoFree) { + if (_autoFreeMapper) { + delete _mapper; + } _mapper = mapper; + _autoFreeMapper = autoFree; } + void EventDispatcher::registerSource(EventSource *source, bool autoFree) { SourceEntry newEntry; |