Ongoing Font issues [EDIT]


#1

a juce plugin - compiled with SDK 10.6 and Deplyoment Target=10.5 crashes with auval in 10.5. but running fine in 10.6. - whats the reason?

Process:         auvaltool [184]
Path:            /usr/bin/auvaltool
Identifier:      auvaltool
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  perl [183]

Date/Time:       2012-06-15 10:40:45.894 +0200
OS Version:      Mac OS X 10.5 (9A581)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Crashed Thread:  0


Thread 0 Crashed:
0   ???                           	0000000000 0 + 0
1   com.my.testplugin  	0x01037750 AUBase::SaveState(void const**) + 36
2   com.my.testplugin  	0x01046d15 JuceAU::SaveState(void const**) + 33
3   com.my.testplugin  	0x0103737b AUBase::DispatchGetProperty(unsigned long, unsigned long, unsigned long, void*) + 215
4   com.my.testplugin  	0x0103d3a5 AUBase::ComponentEntryDispatch(ComponentParameters*, AUBase*) + 469
5   com.my.testplugin  	0x01047b39 ComponentEntryPoint<JuceAU>::Dispatch(ComponentParameters*, JuceAU*) + 123
6   ...ple.CoreServices.CarbonCore	0x951edef5 CallComponentDispatch + 29
7   ...apple.audio.units.AudioUnit	0x9241b833 AudioUnitGetProperty + 67
8   auvaltool                     	0x00003d75 0x1000 + 11637
9   auvaltool                     	0x00003f72 0x1000 + 12146
10  auvaltool                     	0x0000969b 0x1000 + 34459
11  auvaltool                     	0x00003125 0x1000 + 8485
12  auvaltool                     	0x000101de 0x1000 + 61918
13  auvaltool                     	0x0001056e 0x1000 + 62830
14  auvaltool                     	0x00001dfa 0x1000 + 3578

#2

Compiled with OSX 10.6.8 - XCode 3.2.6


#3

Hard to tell, but it could be that the host is passing a null pointer to SaveState(), and that’s making Apple’s own SaveState() method crash.

You could try adding a check to prevent that:

ComponentResult SaveState (CFPropertyListRef* outData) { if (outData != nullptr) { ComponentResult err = JuceAUBaseClass::SaveState (outData); ..etc

But it could also be something inside Apple’s SaveState() that’s crashing for some other reason. Or perhaps the whole object is dangling. Can’t tell from that stack trace.


#4

thanks, but does not help.

trying now with compatibility SDK 10.4. but i’m not optimistic :frowning:


#5

hopefully this is (not) a bug in auval … doing some compatibility checks from a fresh 10.5 installation
10.4. unable to compile


#6

Can’t say what’s the reason for the crash, but we’re using 10.5/10.5 as base/deployment SDK which builds non-crashing plugins. I didn’t test with auval but the plugins crashed in different hosts.
So if that’s an option it might be the easiest solution.

edit: forgot to mention, this was more than a year ago and we haven’t changed the sdk since then, so it might be another cause for the crash in your case.

Chris


#7

thanks for the info!
just stumbled over this post (last sentence) mmhhhh…

http://www.kvraudio.com/forum/printview.php?t=340395&start=0


#8

Just compiling with 10.5/10.5, i get the font-bug in Logic again, how can that be Jules?


#9

OK, with 10.5/10.5 it WORKS IN 10.5 BUT the destroys the font in 10.6!


#10

it seems that fonts which the “bold” attribute, don’t have the problem.


#11

i modified the juce demo, to reconstruct the problem.
The only thing you have to do is set Base SDK And Target SDK to 10.5.

[attachment=0]juciss.png[/attachment]


#12

I took a look. This is not the same bug as last time, this is something completely different.
The problem lies somewhere in the old font code (Cocoa).
I had no hand in writing that code so I won’t be fixing this problem in my own free time.
If you’d like me to look at it further, shoot me a PM and maybe we can work something out.


#13

thanks for your offer, i just made a test, with the latest April check-in (before the big one), and it works (with 10.5 base sdk), so this must be a new issue


#14

bump


#15

In the current state, its just impossible to create AU-Plugins which are compatible with 10.5/10.6.
To be compatible with Logic under 10.5 you need to compile against base(!) sdk 10.5 , but this destroys the font rendering.


#16

I’d like to attach myself to the problem i see the same results with my plugin on OSX
On the right side there is a normal PropertyPanel with some standard and non-standard PropertyComponents, there is no LookAndFeel class involved so i was not changing any fonts manually.
[attachment=0]labels.jpg[/attachment]


#17

Sorry, I’ve not got time to debug this right now, but you can probably temporarily hack it by disabling this bit of code:

bool CoreGraphicsContext::drawTextLayout (const AttributedString& text, const Rectangle<float>& area) { #if 0 //JUCE_CORETEXT_AVAILABLE

I’ve no idea what the host is doing that would bugger-up the fonts like that - presumably they’ve overridden something so they can draw with that music font, and I really don’t know how we could avoid it…


#18

Hi Jules,
thanks, but the hack does not help :frowning:

the bug was introduced with new font code in the beginning of may…


#19

For now you could specify the use of an alternative font rather than the default one.
That seems to work.


#20

thanks, is there a method to use another font that applies to all components? (LookAndFeel?) And which font is available on 10.5 - 10.8 and looks like the standard one?
hacking Font::getDefaultSansSerif… does not work…