* Change lookup strategy for SQL_CheckConfig
* Ensure db conf lookup failures default to ..default
* Revert "Ensure db conf lookup failures default to ..default"
This reverts commit 03dc703daeeeadaa134e2160bf2c7cd812402758.
* Create DatabaseConfBuilder & remove locking
* Remove all refcounting
This is part 1/n in regards to this PR's rework
* Move db conf lookup out of RunThreadPart
* Return default configuration for failed lookups
* RefPtr members & stop leaks
* fix uint comparison warning
If one of the queries fails in a transaction, the DBI system would only allocate an array of the size of the amount of all the successful queries before the failed one. It writes data for all the queries though effectively writing past the array bounds leading to heap corruption.
Create the right sized array!
Plugins were able to close the results handle in the threaded query
callback causing a double free crash. The access rights are setup right
before the handle is created, but weren't used.
This avoids spam of "Plugin not runnable" exceptions on shutdown or
plugin unload.
When re/unloading a plugin which has other ones depending on it, like
the adminmenu, It pauses the depending plugins putting them in an
"Depends on plugin: %s" error state. ForwardSys doesn't remove them from
the forward lists on pause, specially the global forwards, and still
tries to call all the global forwards like OnPlayerRunCmd and
OnLibraryAdded etc. on the paused plugins. Executing functions in paused
runtimes has been ignored in the VM before introducing the "Exception"
mechanism, but now they're all logged.
This adds checks to make sure the plugin is runnable before calling a
function. (Stolen from #438)