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
>    .

Reply via email to