메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

cocos2d-x 2.2.2를 윈도우에서 실행시키고 나서 종료하면

기본으로 4바이트의 메모리 누수가 발생한다.

이건 CCScriptEngineManager가 원인인데

CCObject들은 delete를 실행할 때마다

CCScriptEngineManager의 sharedManager를 호출하기 때문이다.


결국 모든 CCObject가 delete 된 후에 CCScriptEngineManager를 purge해 줘야 하는데,

코드로 이걸 할 수 있는 방법이 없다.

main이 종료되는 순간에 모든 오브젝트들의 delete가 계속 실행되기 때문에

코드로 purge 타이밍을 적을 데가 없다.


해결방법은 CCScriptSupport.cpp에 있는

static CCScriptEngineManager* s_pSharedScriptEngineManager = NULL;

이 static 포인터를 없애버리고


CCScriptEngineManager* CCScriptEngineManager::sharedManager(void)

{

static CCScriptEngineManager s_pSharedScriptEngineManager;

return &s_pSharedScriptEngineManager;

}


void CCScriptEngineManager::purgeSharedManager(void)

{

sharedManager()->removeScriptEngine();

}


sharedManager와 purgeSharedManager를 위와 같이 수정해준다.


사실 이건 굳이 잡아줄 필요없는 누수이다.

계속 4바이트가 상주되어 있다가 프로그램이 종료될 때 생기는 누수이기 때문에

전혀 문제될 것이 없다.


하지만 디버그 창에 메모리 누수 덤프되는 거 보기 싫어서 고쳤다.

불필요한 에러 메시지는 깔끔한 코딩을 방해하기 때문.

태그 :
조회 수 :
640
등록일 :
2014.03.10
03:34:47 (*.75.34.131)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=769861
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
45 Lua 소코반: 벽을 뚫고 나가지 않게 해보자! 노루발 2013-09-17 696
44 Lua 소코반: 상자를 만들고 옮기고 상자와 상자가 겹치거나 상자와 벽이 겹치지 않게 해 보자! 노루발 2013-09-17 677
43 Lua 소코반: 목표 지점을 만들고, 상자가 모두 옮겨지면 게임을 끝내자! 노루발 2013-09-17 754
42 이미지 그리는 방법 1편 노루발 2013-09-17 812
41 이미지 그리는 방법: 2편. 부제: 쿼드! 노루발 2013-09-17 821
40 게임의 기본 설정을 담당하는 love.conf 노루발 2013-09-17 763
39 Lua 소코반 EX: 그래픽 준비 노루발 2013-09-18 1084
38 Lua 소코반 EX: 포팅: 1 노루발 2013-09-18 856
37 Lua 소코반 EX: 포팅: 2 (키가 눌리면 이동하게 해 보자) 노루발 2013-09-18 832
36 Lua 소코반 EX: 포팅: 3 (머나먼 여행길 안녕 친구여) 노루발 2013-09-18 913
35 CCTextFieldTTF 0바이트 메모리 누수 버그 해결법 똥똥배 2014-01-13 692
34 Cocostudio의 ActionNode 메모리 누수 해결법(cocos2d-x 2.2.2) [2] 똥똥배 2014-03-09 776
33 cocos2d-x 2.2.2 UILabelBMFont 메모리 누수 해결법 [2] 똥똥배 2014-03-10 783
» cocos2d-x 2.2.2 윈도우 환경 기본 메모리 누수 똥똥배 2014-03-10 640
31 cocos2d-x 2.2.2 문자열 출력 버그 [2] 똥똥배 2014-06-10 601
30 구글 인앱 구매 Soomla로 구현해본 후 팁 똥똥배 2014-09-20 577
29 Love2d 여러 플랫폼으로 빌드 자동화 노루발 2014-11-12 470
28 Love2d 안드로이드 빌드하기 노루발 2014-12-15 572
27 Love2d 안드로이드 게임 패키징하기 [3] 노루발 2014-12-15 546
26 [번역] gamedev레딧의 Getting Started 문서 번역 [5] priling 2014-12-26 1890