> On Jul 14, 2016, at 14:15, Christiaan Hofman <cmhof...@gmail.com> wrote:
> 
> It seems NSNotificationCenter isn’t the only, or perhaps the real, culprit. 
> Even though it does seem to fix the issue on 10.11, though apparently no1t on 
> 0.9. 

I’m not too surprised. I’ve always thought there’s a heap smasher somewhere, 
and minor changes in code were moving things around in memory just enough to 
avoid the crash.

> it seems the real problem is in FVObject. That does some overrides of the ref 
> counting. And that does not seem to work well with the weak referencing that 
> NSNotificationCenter does. 

AFAIK NSNotificationCenter has always used unsafe, nonretained references, 
though it looks like it does something different on iOS now (zeroing weak, or 
whatever the jargon is). I can’t find anything in the Mac OS docs that indicate 
it’s changed there.

> I really don’t know what FVObject is for. Can’t we do without? Or otherwise, 
> how should this be fixed?

As it says in the header, FVObject just implements inline refcounting for 
performance reasons. Many (most?) Cocoa and CF objects used to do that, and it 
was a significant performance improvement when I implemented it. It looks like 
Omni removed their inline refcount from OFObject in 2013, so maybe it’s less of 
an improvement now.

ISTR I #defined out all the code in FVObject and it still crashed, but it’s 
been a while. Retain/release messages were balanced in the object I saw that 
was overreleased, as far as I could tell. I also set a memory watchpoint on the 
inline refcount address to see if it was being overwritten on the heap, but 
only saw it change due to retain/release. Then I got sidetracked and never 
returned to it.

Adam


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Bibdesk-develop mailing list
Bibdesk-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-develop

Reply via email to