[MacRuby] #702: AudioTimeStamp.new crashes MacRuby 0.6
#702: AudioTimeStamp.new crashes MacRuby 0.6 -----------------------------------+---------------------------------------- Reporter: nagachika00@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- I try to CoreAudio application by MacRuby and met some difficulties. Code: {{{ framework "CoreAudio" AudioTimeStamp.new }}} Result: {{{ $ macruby -v test.rb MacRuby version 0.6 (ruby 1.9.0) [universal-darwin10.0, x86_64] unknown: warning: bs: CF type `^{__CFBundle=}' already defined unknown: warning: bs: enum `FALSE' already defined unknown: warning: bs: enum `TRUE' already defined Assertion failed: (Ty && "Invalid GetElementPtrInst indices for type!"), function checkType, file /usr/local/include/llvm/Instructions.h, line 254. }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/702> MacRuby <http://macruby.org/>
#702: AudioTimeStamp.new crashes MacRuby 0.6 -----------------------------------+---------------------------------------- Reporter: nagachika00@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Comment(by mattaimonetti@…): I don't think that's the way this API is meant to be used. -- Ticket URL: <http://www.macruby.org/trac/ticket/702#comment:1> MacRuby <http://macruby.org/>
#702: AudioTimeStamp.new crashes MacRuby 0.6 -----------------------------------+---------------------------------------- Reporter: nagachika00@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Comment(by lsansonetti@…): It's crashing when trying to compile the #new method on the structure {{{ (gdb) p *bs_boxed->as.s $2 = { name = 0x1023b4770 "AudioTimeStamp", type = 0x1023b4850 "{AudioTimeStamp=dQdQ{SMPTETime=ssIIIssss}II}", fields = 0x1023b4b90, fields_count = 7, opaque = false } }}} More specifically, the {{{{SMPTETime=ssIIIssss}}}} part. -- Ticket URL: <http://www.macruby.org/trac/ticket/702#comment:2> MacRuby <http://macruby.org/>
#702: AudioTimeStamp.new crashes MacRuby 0.6 -----------------------------------+---------------------------------------- Reporter: nagachika00@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Comment(by lsansonetti@…): Strange enough, the structure can be decomposed like this: {{{ $ ./miniruby -e "framework 'CoreAudio'; p Pointer.new('{SMPTETime=ssIIIssss}')[0]" #<SMPTETime mSubframes=0 mSubframeDivisor=0 mCounter=0 mType=0 mFlags=0 mHours=0 mMinutes=0 mSeconds=0 mFrames=0> }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/702#comment:3> MacRuby <http://macruby.org/>
#702: AudioTimeStamp.new crashes MacRuby 0.6 -----------------------------------+---------------------------------------- Reporter: nagachika00@… | Owner: lsansonetti@… Type: defect | Status: closed Priority: major | Milestone: MacRuby 0.7 Component: MacRuby | Resolution: fixed Keywords: | -----------------------------------+---------------------------------------- Changes (by lsansonetti@…): * status: new => closed * resolution: => fixed * milestone: => MacRuby 0.7 Comment: The problem was that the SMPTETime structure is too large to fit in a register (so a pointer was returned by the compiler). It should be fixed in r4068. {{{ $ cat t.rb framework "CoreAudio" p AudioTimeStamp.new $ ./miniruby t.rb #<AudioTimeStamp mSampleTime=0.0 mHostTime=0 mRateScalar=0.0 mWordClockTime=0 mSMPTETime=#<SMPTETime mSubframes=0 mSubframeDivisor=0 mCounter=0 mType=0 mFlags=0 mHours=0 mMinutes=0 mSeconds=0 mFrames=0> mFlags=0 mReserved=0> }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/702#comment:4> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby