Revision 7421e3e...

Go back to digest for 30th December 2012

Bug Fixes in Utilities

Friedrich Karl Tilman Pülz committed changes in [publictransport] /:

Fix crash, data source connections, cache cleanup

Always publish data for "ServiceProvider <id>" sources, also if no
provider with the given <id> can be found. Never delete service provider
or timetable data sources, expect when they are no longer connected with
any visualization. This way connections to the engine stay alive when
(un)installing or updating providers.

Detect uninstalled providers, no matter if the engine was running or not
while the provider was uninstalled. Cleanup the cache from data for
uninstalled providers.

Publish timetable data sources under all using data source names.
Cache all additional timetable data and remove it after a timeout
when it is no longer used. Do not mark the whole timetable data source
as erroneous when a request for additional data has failed.

Fix random crashes by using a shared pointer for the QScriptProgram
used by script providers. If an instance of QScriptProgram gets
destroyed while a copy of it is used by another QScriptEngine in another
thread it crashes. There were many crashes when the applet was
configured to directly request additional timetable data for all items.

Do not lock ScriptJob while it executes an event loop,
eg. in ScriptJob::requestAbort().

File Changes

Modified 14 files
  •   engine/datasource.cpp
  •   engine/datasource.h
  •   engine/publictransportdataengine.cpp
  •   engine/publictransportdataengine.h
  •   engine/serviceproviderglobal.cpp
  •   engine/serviceproviderglobal.h
  •   engine/script/script_thread.cpp
  •   engine/script/script_thread.h
  •   engine/script/scriptobjects.cpp
  •   engine/script/scriptobjects.h
  •   engine/script/serviceproviderscript.cpp
  •   engine/timetablemate/src/debugger/debugger.cpp
  •   engine/timetablemate/src/debugger/debuggerjobs.cpp
  •   engine/timetablemate/src/debugger/timetabledatarequestjob.cpp
14 files changed in total