V4CC - Cocoa examples problem

Dave Parizek dave at Parizek.com
Wed May 31 22:02:50 CDT 2006


Some more info on the "EXC_BAD_ACCESS" error problem:

I re-downloaded installer for Ruslan's example, ran the installer.   
Re-tried his example and it worked, no crash now.  But then I retried  
your NSTableView example and now it crashes with same error message.   
Whereas before yours worked and his crashed.

So this seems for sure it is just a case of some necessary files are  
being put in different places?  But they cannot be duplicated and put  
in both places because then somehow they conflict?

So I think I will just look at and try to learn from both yours and  
Ruslan's source code, and start working on my own example.  I do not  
necessarily need to be able to run both your examples anymore.  I  
just need to know what is final decision about where files should be  
placed so that I can make sure my example (and eventually my project)  
works with that decision.

Ruslan, did you make a final decision? Or rather a decision for now?

--Dave

__________________________________________
Dave Parizek


On May 31, 2006, at 6:50 PM, Justin Drury wrote:

> Hey Dave, what does the crash log say?  Did you execute the run  
> script to do the sym link to vkernel lib?
>
> If you like zip and send me the project and source on your drive  
> I'll take a look
>
> justin
>
> On 31-May-06, at 9:32 PM, Dave Parizek wrote:
>
>> I downloaded and installed Ruslan's Cocoa example and it built and  
>> ran fine.  Then I got Justin's excellent TableView example, made  
>> changes in where things were (as instructed), and it built and ran  
>> fine.  But now I try to re-run Ruslan's example and something must  
>> be broken - I get the error "EXC_BAD_ACCESS".  It builds but  
>> crashes when running.
>>
>> As a Cocoa newbie I understand what all I need to do to code for  
>> Valentina (sort of at least) but I do not understand all this  
>> discussion of where things need to be so xcode can see them.  Is  
>> the above error caused by changing the locations of needed  
>> framework files?
>>
>> Or have I messed something up:  googling this error suggests it is  
>> a memory management issue:
>>
>> "EXC_BAD_ACCESS"
>> This error usually is caused because you refer to something that has
>> already been deallocated. Is can often happen if you forget to retain
>> an object that was autoreleased when it was created, and you try to
>> access it too late, i.e. after the pool has cleaned stuff up. It can
>> also happen if you release something more than you should, i.e. you
>> release an object that you did not own.  This is a good read to start
>> from:
>> http://www.stepwise.com/Articles/Technical/HoldMe.html
>>
>>
>> --Dave
>> __________________________________________
>> Dave Parizek
>>
>>
>> On May 17, 2006, at 3:21 AM, Justin Drury wrote:
>>
>>> Pros for /Library/Frameworks/V4CC.Framework
>>> •Contains snapshot of Valentina Release, everything is  
>>> contained.  (The VComponents are contained in the framework and  
>>> have had their names changed already. See bottom of email)
>>> •Easily added to xcode project
>>> •small application sizes(multiple apps link to the framework)
>>> •Apps can be updated to use new V4CC framework without recompiling 
>>> (see below #1)
>>>
>>> Con's
>>> •10.4u SDK sym link workaround(one time hit)
>>> •(#1)existing API 's shouldn't change, otherwise older apps  
>>> linking to the framework will crash(that method no longer exists)
>>> •That darn sym link in the application's package to libvkernel  
>>> (Hopefully you guys can fix that soon)
>>>
>>> ---------------------
>>> Pros for @executable_path/../Frameworks
>>> •Self contained application, no "install" necessary
>>> •Freedom to change API.  Application is snapshot of a particular  
>>> time.
>>> •I suppose you could swap out the VComponents folder inside an  
>>> app to update it.
>>>
>>> Cons
>>> •Larger app size
>>> •Requires post flight script to use install_name_tool to change  
>>> VComponents to @executable_path
>>> •To use XCode with framework requires drag of V4CC.framework into  
>>> XCode project then all VComponents(framework cannot contain the  
>>> vcomponents in this instance), then setting up copy phases in  
>>> XCode to copy the V4CC.Framework into  Frameworks, and then  
>>> setting up the VComponents tree(yeach!)
>>>
>>>
>>> RUSLAN: Your XCode Project for V4CC, does it have a copy files  
>>> phase where it copies each of the VComponents into the Framework 
>>> (I was using Resources before), and did those files have the  
>>> following script run on it?  If not then you are just building a  
>>> framework that links against /usr/local/lib/vcomponents.  Nothing  
>>> wrong with that, its just not self contained... And a user now  
>>> has stuff in 3 places (the application itself, usr/local/lib/ 
>>> vcomponents and /Library/Frameworks)
>>>
>>> # change id of data library
>>> 	
>>> 	cd /usr/local/lib/vcomponents/
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libicudata.dylib" libicudata.dylib
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libicuuc.dylib" libicuuc.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicudata.dylib" "/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicudata.dylib" libicuuc.dylib
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libicui18n.dylib" libicui18n.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicudata.dylib" "/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicudata.dylib" libicui18n.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicuuc.dylib" 	"/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicuuc.dylib" libicui18n.dylib
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libicuio.dylib" libicuio.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicuuc.dylib" 	"/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicuuc.dylib" libicuio.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicudata.dylib" "/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicudata.dylib" libicuio.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicui18n.dylib" "/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicui18n.dylib" libicuio.dylib
>>>
>>>
>>> #####################################
>>>
>>> 	# change id of VSHARED
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libvshared_fat_release.dylib"  
>>> libvshared_fat_release.dylib
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libvkernel_fat_release.dylib"  
>>> libvkernel_fat_release.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libvshared_fat_release.dylib" 	  "/Library/Frameworks/ 
>>> V4CC.framework/Versions/A/Resources/libvshared_fat_release.dylib"  
>>> 		libvkernel_fat_release.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> VSDK.framework/Versions/A/VSDK" "/Library/Frameworks/ 
>>> V4CC.framework/Versions/A/Resources/VSDK.framework/Versions/A/ 
>>> VSDK" 	libvkernel_fat_release.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicudata.dylib" "/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicudata.dylib" 	libvkernel_fat_release.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicuuc.dylib" 	"/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicuuc.dylib" 	libvkernel_fat_release.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicui18n.dylib" "/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicui18n.dylib" 	libvkernel_fat_release.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libicuio.dylib" 	"/Library/Frameworks/V4CC.framework/Versions/A/ 
>>> Resources/libicuio.dylib" 	libvkernel_fat_release.dylib
>>>
>>>
>>> 	# change id of VCLIENT
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libvclient_fat_release.dylib"  
>>> libvclient_fat_release.dylib
>>> 	install_name_tool -change "/usr/local/lib/vcomponents/ 
>>> libvshared_fat_release.dylib" "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/libvshared_fat_release.dylib"  
>>> libvclient_fat_release.dylib
>>> 	
>>> 	cd VSDK.framework/
>>> 	install_name_tool -id "/Library/Frameworks/V4CC.framework/ 
>>> Versions/A/Resources/VSDK.framework/Versions/A/VSDK" VSDK
>>> 	
>>>
>>>
>>> _______________________________________________
>>> Valentina-beta mailing list
>>> Valentina-beta at lists.macserve.net
>>> http://lists.macserve.net/mailman/listinfo/valentina-beta
>>
>
> _______________________________________________
> Valentina-beta mailing list
> Valentina-beta at lists.macserve.net
> http://lists.macserve.net/mailman/listinfo/valentina-beta



More information about the Valentina-beta mailing list