Summary: | [Patch] Crash when MarbleWidget cannot find the "inital tile" for OSM | ||
---|---|---|---|
Product: | [Applications] marble | Reporter: | Volker Lanz <vl> |
Component: | general | Assignee: | marble-bugs |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | bastianholst, nienhueser |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | 1.1.0 | ||
Platform: | Compiled Sources | ||
OS: | Microsoft Windows | ||
Latest Commit: | Version Fixed In: | 1.2.0 (KDE 4.7.0) | |
Sentry Crash Report: | |||
Attachments: | tile-of-death.diff |
Description
Volker Lanz
2010-08-31 15:29:02 UTC
Created attachment 51151 [details]
tile-of-death.diff
Also happens under Linux.
Attached is the first part of a fix: Falling back to a blue tile of death if the level zero tile is missing. It uses a hardcoded tile size of 256x256 pixel. A proper patch needs to replace this with the actual tile size of the theme, however. To get this done, we should add a tile size tag to texture layers defined in dgml files.
Comment on attachment 51151 [details] tile-of-death.diff Superseded by http://reviewboard.kde.org/r/6334/ SVN commit 1217541 by nienhueser: Allow using absolute source directories in texture layers in .dgml files. Extend .dgml by a tileSize tag (width and height attribute), usable inside textureLayer tags. Such .dgml files are backwards compatible. Handle 'base tile missing' case more gracefully and return an empty image instead of triggering an assertion. Move the default tile size (675) to global.h and replace hardcoded default tile sizes with it. CCBUG: 249633 CCBUG: 263010 REVIEW: 6334 M +1 -0 data/maps/earth/bluemarble/bluemarble.dgml M +2 -0 data/maps/earth/openstreetmap/openstreetmap.dgml M +2 -1 src/lib/FileStoragePolicy.cpp M +2 -2 src/lib/ImageLoadThread.cpp M +1 -1 src/lib/MapWizard.cpp M +32 -36 src/lib/TileCreator.cpp M +18 -4 src/lib/TileLoader.cpp M +1 -0 src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.cpp M +1 -0 src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.h M +1 -0 src/lib/geodata/handlers/dgml/DgmlElementDictionary.cpp M +1 -0 src/lib/geodata/handlers/dgml/DgmlElementDictionary.h A src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.cpp [License: LGPL] A src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.h [License: LGPL] M +27 -5 src/lib/geodata/scene/GeoSceneTexture.cpp M +1 -0 src/lib/geodata/scene/GeoSceneTexture.h M +3 -0 src/lib/global.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1217541 Please reopen if it happens again for some reason. SVN commit 1226352 by nienhueser: Allow using absolute source directories in texture layers in .dgml files. Extend .dgml by a tileSize tag (width and height attribute), usable inside textureLayer tags. Such .dgml files are backwards compatible. Handle 'base tile missing' case more gracefully and return an empty image instead of triggering an assertion. Move the default tile size (675) to global.h and replace hardcoded default tile sizes with it. CCBUG: 249633 CCBUG: 263010 REVIEW: 6334 Backport of commit 1217541. M +1 -0 data/maps/earth/bluemarble/bluemarble.dgml M +1 -0 data/maps/earth/openstreetmap/openstreetmap.dgml M +2 -1 src/lib/FileStoragePolicy.cpp M +2 -2 src/lib/ImageLoadThread.cpp M +32 -36 src/lib/TileCreator.cpp M +18 -4 src/lib/TileLoader.cpp M +1 -0 src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.cpp M +1 -0 src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.h M +1 -0 src/lib/geodata/handlers/dgml/DgmlElementDictionary.cpp M +1 -0 src/lib/geodata/handlers/dgml/DgmlElementDictionary.h A src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.cpp [License: LGPL] A src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.h [License: LGPL] M +27 -5 src/lib/geodata/scene/GeoSceneTexture.cpp M +1 -0 src/lib/geodata/scene/GeoSceneTexture.h M +3 -0 src/lib/global.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1226352 |