2010-10-01 83 views
5

我使用OpenAL在我的應用程序中播放聲音。當我使用Instruments工具進行測試,發現泄漏:
LeakedObject = GeneralBlock-512
大小= 512字節
負責圖書館= AudioToolbox
負責幀= AU3DMixerEmbeddedInputElement ::初始化()iPhone:OpenAL&AudioToolbox泄漏

堆棧跟蹤:

0 libSystem.B.dylib malloc 
    1 libstdc++.6.dylib operator new(unsigned long) 
    2 libstdc++.6.dylib operator new[](unsigned long) 
    3 AudioToolbox AU3DMixerEmbeddedInputElement::Initialize() 
    4 AudioToolbox AU3DMixerEmbedded::SetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long) 
    5 AudioToolbox AUBase::DispatchSetProperty(unsigned long, unsigned long, unsigned long, void const*, unsigned long) 
    6 AudioToolbox AUMethodSetProperty(void*, unsigned long, unsigned long, unsigned long, void const*, unsigned long) 
    7 OpenAL OALContext::InitializeMixer(unsigned long) 
    8 OpenAL OALContext::OALContext(unsigned long, OALDevice*, int const*, unsigned long&, double&) 
    9 OpenAL alcCreateContext 
    10 myApp -[myAudioManager initOpenAL] /Users/kpower/Documents/projects/myApp/Classes/myAudioManager.m:197 
    11 myApp -[myAudioManager init] /Users/kpower/Documents/projects/myApp/Classes/myAudioManager.m:83 
    12 myApp +[myAudioManager sharedInstance] /Users/kpower/Documents/projects/myApp/Classes/myAudioManager.m:316 
    13 myApp -[myMainMenu viewDidLoad] /Users/kpower/Documents/projects/myApp/Classes/myMainMenu.m:46 
    14 UIKit -[UIViewController view] 
    15 UIKit -[UIViewController contentScrollView] 
    16 UIKit -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] 
    17 UIKit -[UINavigationController _layoutViewController:] 
    18 UIKit -[UINavigationController _startTransition:fromViewController:toViewController:] 
    19 UIKit -[UINavigationController _startDeferredTransitionIfNeeded] 
    20 UIKit -[UINavigationController viewWillLayoutSubviews] 
    21 UIKit -[UILayoutContainerView layoutSubviews] 
    22 UIKit -[UIView(CALayerDelegate) _layoutSublayersOfLayer:] 
    23 CoreFoundation -[NSObject(NSObject) performSelector:withObject:] 
    24 QuartzCore -[CALayer layoutSublayers] 
    25 QuartzCore CALayerLayoutIfNeeded 
    26 QuartzCore -[CALayer layoutIfNeeded] 
    27 UIKit -[UIView(Hierarchy) layoutIfNeeded] 
    28 UIKit -[UIViewController window:willAnimateRotationToInterfaceOrientation:duration:] 
    29 UIKit -[UIWindow _setRotatableClient:toOrientation:duration:force:] 
    30 UIKit -[UIWindow _setRotatableViewOrientation:duration:force:] 
    31 UIKit -[UIWindow _updateToInterfaceOrientation:duration:force:] 
    32 UIKit -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] 
    33 UIKit -[UIWindow setDelegate:] 
    34 UIKit -[UIViewController _tryBecomeRootViewControllerInWindow:] 
    35 UIKit -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] 
    36 UIKit -[UINavigationController viewDidMoveToWindow:shouldAppearOrDisappear:] 
    37 UIKit -[UIView(Internal) _didMoveFromWindow:toWindow:] 
    38 UIKit -[UIView(Hierarchy) _postMovedFromSuperview:] 
    39 UIKit -[UIView(Internal) _addSubview:positioned:relativeTo:] 
    40 UIKit -[UIView(Hierarchy) addSubview:] 
    41 myApp -[myAppAppDelegate applicationDidFinishLaunching:] /Users/kpower/Documents/projects/myApp/Classes/myAppAppDelegate.m:19 
    42 UIKit -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] 
    43 UIKit -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] 
    44 UIKit -[UIApplication handleEvent:withNewEvent:] 
    45 UIKit -[UIApplication sendEvent:] 
    46 UIKit _UIApplicationHandleEvent 
    47 GraphicsServices PurpleEventCallback 
    48 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ 
    49 CoreFoundation __CFRunLoopDoSource1 
    50 CoreFoundation __CFRunLoopRun 
    51 CoreFoundation CFRunLoopRunSpecific 
    52 CoreFoundation CFRunLoopRunInMode 
    53 UIKit -[UIApplication _run] 
    54 UIKit UIApplicationMain 
    55 myApp main /Users/kpower/Documents/projects/myApp/Classes/../main.m:13 
    56 myApp start 

代碼在initOpenAL(靠近線197):

device = alcOpenDevice(NULL); 
if (NULL == device) return NO; 

context = alcCreateContext(device, 0); // line 197 - tried using NULL instead of 0 - same result 
if (NULL == context) return NO; 

alcMakeContextCurrent(context); 

這並不重要(它不時重複,消耗內存),但我該如何解決它?

回答

4

我認爲這是圖書館本身的一個問題,因爲我也遇到了問題,其他人的報告也一樣。責怪蘋果爲此。希望他們能儘快解決這個問題。