[Openmcl-devel] Using CFStrings in OpenMCL
David Steuber
david at david-steuber.com
Fri Dec 17 21:38:58 PST 2004
On Dec 17, 2004, at 11:32 PM, Gary Byers wrote:
> On Fri, 17 Dec 2004, David Steuber wrote: >
>
>> Either way, for a CFString or NSString, I still > have to release it
>> so far as I can tell.
>
> You don't have to release a -constant- CFString/NSString (and calling
> #_CFRelease on one is a no-op.)
Just in case I was overlooking the blinding obvious, I thought I would
try
$ openmcl
Welcome to OpenMCL Version (Beta: Darwin) 0.14.2-p1!
? (open-shared-library
"/System/Library/Frameworks/Carbon.framework/Carbon")
#<SHLIB /System/Library/Frameworks/Carbon.framework/Carbon #x6389596>
? (ccl::with-cstr (str "foo") (defconstant +foo+
(#___CFStringMakeConstantString str)))
+FOO+
? +foo+
#<A Mac Pointer #x102F30>
? (#_CFStringGetCStringPtr +foo+ #$kCFStringEncodingASCII)
#<A Null Mac Pointer>
I'm not sure how to get my string back to confirm that +foo+ really has
"foo" in it. I did manage to get myself into the kernel debugger by
not noticing that #_CFStringGetCStringPtr gave me a null MACPTR before
doing CCL::%GET-CSTRING on it. The docs weren't lying about the %
functions being dangerous.
It would be nice to be able to put a constant CFString in a DEFCONSTANT
and have it survive a CCL::SAVE-APPLICATION.
More information about the Openmcl-devel
mailing list