From d29d0d636ad8eebd3f1d5b9baed5741c5fe95d0d Mon Sep 17 00:00:00 2001 From: Gaoxiang Chen Date: Wed, 16 Apr 2014 15:15:05 +0800 Subject: Camera2: Fix camera application memory leak This change fix potential memory leak of camera application when swith between camera and panorama: 1. free allocated frames in jni/Mosaic 2. use application context instead of acitivity context 3. clear disappearing children of ViewGroup explicitly 4. remove IdleHandler during camera exit CRs-fixed: 622518 Change-Id: I2583709489ab2cf1fc20865fe7d2a8f56f2763c9 --- jni/feature_mos/src/mosaic/Mosaic.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'jni') diff --git a/jni/feature_mos/src/mosaic/Mosaic.cpp b/jni/feature_mos/src/mosaic/Mosaic.cpp index 7b96fa5c5..9388b0a87 100644 --- a/jni/feature_mos/src/mosaic/Mosaic.cpp +++ b/jni/feature_mos/src/mosaic/Mosaic.cpp @@ -39,7 +39,7 @@ Mosaic::Mosaic() Mosaic::~Mosaic() { - for (int i = 0; i < frames_size; i++) + for (int i = 0; i < max_frames; i++) { if (frames[i]) delete frames[i]; @@ -77,7 +77,9 @@ int Mosaic::initialize(int blendingType, int stripType, int width, int height, i imageMosaicYVU = NULL; frames = new MosaicFrame *[max_frames]; + memset(frames, 0, sizeof(MosaicFrame *) * max_frames); rframes = new MosaicFrame *[max_frames]; + memset(rframes, 0, sizeof(MosaicFrame *) * max_frames); if(nframes>-1) { -- cgit v1.2.3