What steps will reproduce the problem?
1. Run routeme with RMDBTileImage as the tile source in Instruments and do an
object allocation check
2. Move or zoom map (anything that initiates loading a new tile)
3. Watch the live bytes climb
4. Sort object list by "Live Bytes" and check the stack trace for any of the
Malloc X bytes (where "x" is 36,32,24, etc.) and check the stack trace.
What is the expected output?
- No memory leak
What do you see instead?
A memory leak. It would appear that RMDBTileImage leaks a NSMutableData object
on map move and scroll. It looks like the NSMutableData object used for
creating the image is retained when setting the layer.contents property in
UpdateImageUsingImage, although it is not clear how to reduce the retain count
on the NSMutableData object at this point.
What subversion release are you using?
- Not sure - downloaded in early October and added the RMDBTileImage patch.
Does the behavior occur on the
simulator, a real iPhone/iPod Touch, or both?
Both
If you can reproduce your bug, please provide the source code for a
reproducing case. The best place to start is with the SampleMap project.
Please don't send patches/diffs. Post source code directly to the issue
tracker, noting your suggested revisions. If they are extensive, use a
branch in subversion with the same name as your issue number (e.g.
branches/issue59).
Please provide any additional information below.
I’ve checked to make sure that all of the objects being allocated are getting
released and have tried every potential fix I can think of – looks like a
very pesky bug! Any suggestions for places to look or vague ideas for potential
fixes are welcome!
Here's the stack trace for the leak:
9 -[RMMapContents
initWithView:tilesource:centerLatLon:zoomLevel:maxZoomLevel:minZoomLevel:backgro
undImage:] MapView/Map/RMTileLoader.m:211
8 -[RMTileImageSet addTiles:ToDisplayIn:] MapView/Map/RMTileImageSet.m:365
7 -[RMTileImageSet addTile:At:] MapView/Map/RMTileImageSet.m:263
6 -[RMCachedTileSource tileImage:] /MapView/Map/RMCachedTileSource.m:75
5 -[RMDBMapSource tileImage:] /MapView/Map/RMDBMapSource.m:222
4 +[RMTileImage imageForTile:fromDB:] Map/RMTileImage.m:168
3 -[RMDBTileImage initWithTile:fromDB:] Map/RMDBTileImage.m:106
2 -[FMResultSet dataForColumnIndex:] /Users/tobin1/Documents/Sutro
Project/iPhone
Guides/mobilelocal-offlinemaps/Classes/../Classes/FMResultSet.m:244
1 Foundation +[NSMutableData(NSMutableData) dataWithLength:]
0 Foundation -[NSConcreteMutableData initWithLength:]
Original issue reported on code.google.com by tobinfis...@gmail.com on 19 Nov 2010 at 8:32
Original issue reported on code.google.com by
tobinfis...@gmail.com
on 19 Nov 2010 at 8:32