• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: CGContextSelectFont spinlock
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CGContextSelectFont spinlock


  • Subject: Re: CGContextSelectFont spinlock
  • From: Stevo Brock <email@hidden>
  • Date: Wed, 15 Sep 2010 17:22:10 -0700

Hi Aki,

Thanks for your reply.  Unfortunately changing the font name to the Postscript name does not change the situation.

And also unfortunately, when I click Pause in the Debugger, the stack trace I gave is all that is shown.  If there is a way to get a more complete stack trace, please let me know.

-Stevo


On Sep 15, 2010, at 5:14 PM, Aki Inoue wrote:

> Since I didn't see the actual backtrace, I cannot comment on what could be causing a spin lock deadlock.
>
> One glaring point I'm concerned with this example is that the font name being passed to CGContextSelectFont is incorrect.
>
> All of our font APIs, both on Mac OS X and iOS, are expecting the postscript name.
> The font subsystem is optimized to query fonts via the postscript name efficiently.
>
> In this case, the postscript name is "ComicSansMS-Bold".  "Comic Sans MS Bold" is a fullname (a version of user visible name).
>
> We're allowing queries with non-postscript name for API flexibility, but it costs in both CPU and memory (we need to bring in more data from the font files).
>
> I recommend using the postscript name to see if the issue goes away.
>
> Aki
>
> On 15.9.2010, at 16:44, Stevo Brock wrote:
>
>> Hi Vince,
>>
>> The details of the parameters to the function aren't important.  The specific example I gave has been reduced down from some other code.  In the end I'm not using Comic Sans, but it will come from an NSString.
>>
>> The point is that calling CGContextSelectFont() before doing some other undocumented something results in a spin lock.
>>
>> -Stevo
>>
>>
>> On Sep 15, 2010, at 4:33 PM, Vince DeMarco wrote:
>>
>>>
>>> On Sep 15, 2010, at 4:11 PM, Stevo Brock wrote:
>>>
>>>> Apparently the "font system" was not initialized before this call.  Putting a "[UIFont familyNames]" somewhere previous causes things to roll just fine.
>>>>
>>>> I should mention that this is an OpenGL based app with minimal other system UI.
>>>>
>>>> -Stevo Brock
>>>> Head of Development
>>>> Monkey Tools, LLC
>>>> www.monkey-tools.com
>>>>
>>>>
>>>
>>> This doesn't really matter but why are you doing this
>>>
>>> CGContextSelectFont(context, [@"Comic Sans MS Bold" UTF8String], 24.0, kCGEncodingMacRoman);
>>>
>>> Why not just
>>>
>>> CGContextSelectFont(context, "Comic Sans MS Bold", 24.0, kCGEncodingAscii);
>>>
>>> I changed the encoding from MacRoman to Ascii since it is actually ascii.
>>>
>>> You are creating a Constant NSString with the @"" then turning around and asking it for the UTF8 representation of that, which is the same as what i just typed above.
>>>
>>> Vince
>>>
>>>>
>>>>
>>>> On Sep 15, 2010, at 1:49 PM, Stevo Brock wrote:
>>>>
>>>>> I'm trying to add some custom font support to an iPad app and I keep running into a spinlock from CGContextSelectFont.
>>>>>
>>>>> Happens on SDK 4.0 Simulator and Device running 3.2.2.  I've narrowed down the code to:
>>>>>
>>>>> 		CGContextRef	context = CGBitmapContextCreate(&data, 1, 1, 8, 4, CGColorSpaceCreateDeviceRGB(),
>>>>> 								kCGImageAlphaPremultipliedLast);
>>>>> 		CGContextSelectFont(context, [@"Comic Sans MS Bold" UTF8String], 24.0, kCGEncodingMacRoman);
>>>>> 		CGContextRelease(context);
>>>>>
>>>>> Depending on where I put this code, sometimes it runs through just fine and sometimes it spinlocks.  The stack trace is just:
>>>>>
>>>>> 0: __spin_lock
>>>>> 1: ??
>>>>>
>>>>> Where is it legal to call this function and why would it spin lock elsewhere?  Help!
>>>>>
>>>>> -Stevo Brock
>>>>> Head of Development
>>>>> Monkey Tools, LLC
>>>>> www.monkey-tools.com
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>>
>>>>> Cocoa-dev mailing list (email@hidden)
>>>>>
>>>>> Please do not post admin requests or moderator comments to the list.
>>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>>>
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>
>>>>> This email sent to email@hidden
>>>>
>>>> _______________________________________________
>>>>
>>>> Cocoa-dev mailing list (email@hidden)
>>>>
>>>> Please do not post admin requests or moderator comments to the list.
>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>>
>>>> Help/Unsubscribe/Update your Subscription:
>>>>
>>>> This email sent to email@hidden
>>>
>>
>> _______________________________________________
>>
>> Cocoa-dev mailing list (email@hidden)
>>
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: CGContextSelectFont spinlock
      • From: Wim Lewis <email@hidden>
References: 
 >CGContextSelectFont spinlock (From: Stevo Brock <email@hidden>)
 >Re: CGContextSelectFont spinlock (From: Stevo Brock <email@hidden>)
 >Re: CGContextSelectFont spinlock (From: Vince DeMarco <email@hidden>)
 >Re: CGContextSelectFont spinlock (From: Stevo Brock <email@hidden>)
 >Re: CGContextSelectFont spinlock (From: Aki Inoue <email@hidden>)

  • Prev by Date: Re: CGContextSelectFont spinlock
  • Next by Date: Re: CGContextSelectFont spinlock
  • Previous by thread: Re: CGContextSelectFont spinlock
  • Next by thread: Re: CGContextSelectFont spinlock
  • Index(es):
    • Date
    • Thread