Possible 10.6 PerlObjCBridge bug with Bool values

[email protected] (Gavin Brock)
Newsgroups perl.macosx
Message-ID <[email protected]>
I am having some trouble with PerlObjCBridge on 10.6.

The following code executes fine on 10.5 but crashes perl on my 10.6 (32bit) machine (both intel):


	#!/usr/bin/perl

	use Foundation;
	@SBApplication::ISA = qw(PerlObjCBridge);

	NSBundle->bundleWithPath_('/System/Library/Frameworks/ScriptingBridge.framework')->load;
	my $terminal = SBApplication->applicationWithBundleIdentifier_("com.apple.terminal");
	my $tab = $terminal->doScript_in_("exec sleep 10", undef); # Spawn a terminal

	warn $tab->selected; # <-- Crash


Expected output is:

> 1 at ./bool.pl line 11.



But on 10.6  I get the following error and a crash-reporter dialog:

> **** ERROR **** PerlObjCBridge:: convertObjCToPerl(): Unrecognized or unsupported argument type B (66)



This appears to only be an issue for objects with accessing BOOL properties of objects. (I'm using the generated header file for Terminal as a reference: http://csshx.googlecode.com/svn/rewrite/Terminal.h)

Below is a highlight from the crash report for perl, and the "perl -V" and "sw_vers" output from each machine.

Any ideas would be greatly appreciated.

Regards,

Gavin



10.6 Crash Report
> Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
> 0   libSystem.B.dylib             	0x99590132 __kill + 10
> 1   libSystem.B.dylib             	0x99590124 kill$UNIX2003 + 32
> 2   libSystem.B.dylib             	0x996228e5 raise + 26
> 3   libSystem.B.dylib             	0x9963899c abort + 93
> 4   PerlObjCBridge.bundle         	0x00164323 convertObjCToPerl + 2041
> 5   PerlObjCBridge.bundle         	0x001647b3 convertResult + 1157
> 6   PerlObjCBridge.bundle         	0x001687a9 XS_PerlObjCBridge_sendObjcMessage + 3685
> 7   libperl.dylib                 	0x0007f4b0 Perl_pp_entersub + 2384
> 8   libperl.dylib                 	0x00077faa Perl_runops_standard + 41
> 9   libperl.dylib                 	0x00077d79 perl_run + 427
> 10  perl5.10.0                    	0x00001e17 main + 273
> 11  perl5.10.0                    	0x00001cfd start + 53

10.6 sw_vers
> ProductName:	Mac OS X
> ProductVersion:	10.6.3
> BuildVersion:	10D573

10.6 perl -V
> Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
>   Platform:
>     osname=darwin, osvers=10.0, archname=darwin-thread-multi-2level
>     uname='darwin neige.apple.com 10.0 darwin kernel version 10.0.0d8: tue may 5 19:29:59 pdt 2009; root:xnu-1437.2~2release_i386 i386 '
>     config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=gcc-4.2'
>     hint=recommended, useposix=true, d_sigaction=define
>     useithreads=define, usemultiplicity=define
>     useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
>     use64bitint=define, use64bitall=define, uselongdouble=undef
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='gcc-4.2', ccflags ='-arch x86_64 -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include',
>     optimize='-Os',
>     cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include'
>     ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)', gccosandvers=''
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
>     alignbytes=8, prototype=define
>   Linker and Libraries:
>     ld='gcc-4.2 -mmacosx-version-min=10.6', ldflags ='-arch x86_64 -arch i386 -arch ppc -L/usr/local/lib'
>     libpth=/usr/local/lib /usr/lib
>     libs=-ldbm -ldl -lm -lutil -lc
>     perllibs=-ldl -lm -lutil -lc
>     libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib
>     gnulibc_version=''
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
>     cccdlflags=' ', lddlflags='-arch x86_64 -arch i386 -arch ppc -bundle -undefined dynamic_lookup -L/usr/local/lib'
> 
> 
> Characteristics of this binary (from libperl): 
>   Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
>                         PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS
>                         USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
>   Locally applied patches:
> 	/Library/Perl/Updates/<version> comes before system perl directories
> 	installprivlib and installarchlib points to the Updates directory
>   Built under darwin
>   Compiled at Jun 24 2009 00:35:28
>   %ENV:
>     PERL5LIB="/sw/lib/perl5:/sw/lib/perl5/darwin"
>   @INC:
>     /sw/lib/perl5/5.10.0/darwin-thread-multi-2level
>     /sw/lib/perl5/5.10.0
>     /sw/lib/perl5/darwin-thread-multi-2level
>     /sw/lib/perl5
>     /sw/lib/perl5/darwin
>     /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level
>     /Library/Perl/Updates/5.10.0
>     /System/Library/Perl/5.10.0/darwin-thread-multi-2level
>     /System/Library/Perl/5.10.0
>     /Library/Perl/5.10.0/darwin-thread-multi-2level
>     /Library/Perl/5.10.0
>     /Network/Library/Perl/5.10.0/darwin-thread-multi-2level
>     /Network/Library/Perl/5.10.0
>     /Network/Library/Perl
>     /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level
>     /System/Library/Perl/Extras/5.10.0
>     .

10.5 sw_vers
> ProductName:	Mac OS X
> ProductVersion:	10.5.8
> BuildVersion:	9L30

10.5 perl -V
> Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
>  Platform:
>    osname=darwin, osvers=9.0, archname=darwin-thread-multi-2level
>    uname='darwin b04.apple.com 9.0 darwin kernel version 9.6.0: mon nov 24 17:37:00 pst 2008; root:xnu-1228.9.59~1release_i386 i386 '
>    config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib'
>    hint=recommended, useposix=true, d_sigaction=define
>    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
>    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>    use64bitint=define use64bitall=define uselongdouble=undef
>    usemymalloc=n, bincompat5005=undef
>  Compiler:
>    cc='cc', ccflags ='-arch ppc -arch i386 -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-statement -I/usr/local/include',
>    optimize='-O3',
>    cppflags='-no-cpp-precomp -arch ppc -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-statement -I/usr/local/include'
>    ccversion='', gccversion='4.0.1 (Apple Inc. build 5465)', gccosandvers=''
>    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
>    alignbytes=8, prototype=define
>  Linker and Libraries:
>    ld='cc -mmacosx-version-min=10.5.6', ldflags ='-arch ppc -arch i386 -L/usr/local/lib'
>    libpth=/usr/local/lib /usr/lib
>    libs=-ldbm -ldl -lm -lutil -lc
>    perllibs=-ldl -lm -lutil -lc
>    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib
>    gnulibc_version=''
>  Dynamic Linking:
>    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
>    cccdlflags=' ', lddlflags='-arch ppc -arch i386 -bundle -undefined dynamic_lookup -L/usr/local/lib'
> 
> 
> Characteristics of this binary (from libperl):
>  Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
>                        PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES
>                        USE_PERLIO USE_REENTRANT_API
>  Locally applied patches:
> 	fix for regcomp CVE-2007-5116 security vulnerability
> 	fix for double-free CVE-2008-1927 security vulnerability
> 	/Library/Perl/Updates/<version> comes before system perl directories
> 	installprivlib and installarchlib points to the Updates directory
>  Built under darwin
>  Compiled at Jan 27 2010 23:39:09
>  @INC:
>    /Library/Perl/Updates/5.8.8
>    /System/Library/Perl/5.8.8/darwin-thread-multi-2level
>    /System/Library/Perl/5.8.8
>    /Library/Perl/5.8.8/darwin-thread-multi-2level
>    /Library/Perl/5.8.8
>    /Library/Perl
>    /Network/Library/Perl/5.8.8/darwin-thread-multi-2level
>    /Network/Library/Perl/5.8.8
>    /Network/Library/Perl
>    /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level
>    /System/Library/Perl/Extras/5.8.8
>    /Library/Perl/5.8.6/darwin-thread-multi-2level
>    /Library/Perl/5.8.6
>    /Library/Perl/5.8.1/darwin-thread-multi-2level
>    /Library/Perl/5.8.1
>    .
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.