ccgus/fmdb — pull request #191 by TomSwift (2013-10-11 20:25:49+00:00)
Title: fix for statement caching issue

This is a proposed fix for the statement caching issue described in https://github.com/ccgus/fmdb/issues/6

My approach is basically what @mattstevens proposes in the issue thread: Cached statements are now only dolled out when they aren't currently associated with an open FMResultSet. Once an associated result set is closed the cached statement becomes available for reuse.

I added a simple test case to fmdb.m to validate the fix and confirm that it doesn't break statement caching altogether. All tests in fmdb.m apparently continue to pass. I ran no other regression tests to see if I somehow broke something else.

My fix uses __weak, but I provided a non-arc/non-weak compilation path. But this is untested.

I believe this fix negates the need for the fix applied for similar issue https://github.com/ccgus/fmdb/issues/106. But that fix doesn't conflict with mine.