So CFBridgingRelease() essentially calls -autorelease, and
CFBridgingRetain() -retain? I kind of get why, but only after thinking
about it for an hour.

On Tue, Aug 22, 2017 at 12:56 PM, Fred Kiefer <fredkie...@gmx.de> wrote:

>
> > Am 22.08.2017 um 17:15 schrieb Stefan Bidigaray <stefanb...@gmail.com>:
> >
> > Hi everyone,
> > This message is mostly for Daniel, but anyone with some experience using
> these functions should not hesitate to add their thoughts.
> >
> > Daniel, I just noticed your pull request on github last night. I'm good
> with most of it, my only concern is the bridging functions. I made a
> comment last night, but later discovered I misunderstood their purpose. I'd
> like to get your pull request merged, and want do discuss it before we move
> forward.
> >
> > My understanding of the documentation for CFBridgingRelease and
> CFBridgingRetain is that they are essentially no-ops, unless ARC is in
> effect. And even when ARC is being used they do not do anything other than
> tell the compiler that the object is now controlled by ARC. With that in
> mind, these two "functions" should do nothing other than cast the CF object
> as an ARC aware object, and nothing at all if ARC is not implemented. Does
> this sound reasonable? Another part of this conversation is where do these
> functions belong. According to the Apple documentation, they are part of
> Foundation, so should they not be in Base, instead?
> >
> > As for CFAutorelease, I think this is the function where
> objc_autoreleaseReturnValue() needs to be used. The documentation for this
> function is nonexistent, so I'm just guessing at what it really does.
> >
> > Any thoughts? Anyone?
>
>
> Stefan,
>
> I think you are mostly correct. Apple has this stuff in Foundation, but we
> don’t build base on top of CoreFoundation, so we need to have it the other
> way around. In ARC-mode these two functions should call the compiler
> primitives David pointed to. Where you are incorrect is the non-ARC-mode.
> There Apple seems to implement these functions as retain and
> (auto-)release. Don’t ask me why, your interpretations makes more sense to
> me.
>
> Fred
>
>
>
> _______________________________________________
> Gnustep-dev mailing list
> Gnustep-dev@gnu.org
> https://lists.gnu.org/mailman/listinfo/gnustep-dev
>
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to