SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0002963 | SAS.Планета | [All Projects] Баг | public | 12-02-2016 08:06 | 16-06-2016 10:15 |
|
Reporter | dmitryP | |
Assigned To | vdemidov | |
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | |
Platform | x64 | OS | Windows | OS Version | Win7 SP1 |
Product Version | 151111 | |
Target Version | 160606 | Fixed in Version | 160606 | |
|
Summary | 0002963: ЕAccessViolation при склейке карты |
Description | При попытке склейки карты после запуска появляется сообщение об "EAccessViolation: Access violation at address 00405112 in module SAS.Planet. Read address 00000100".
Файл изображения создается, но формат - некорректный.
|
Steps To Reproduce | 1. Загрузить тайлы для области
2. Запустить склейку карты. Формат изображения и настройки склейки - произвольные.
3. После запуска склейки немедленно появляется сообщение (100%). |
Additional Information | Не воспроизводится на v.150915.
Воспроизводится на v.151111 и Nightly build.
При попытке склейки Debug-версии приложение завершается. ELF-файл не образуется. |
Tags | No tags attached. |
Relationships | related to | 0002229 | resolved | vdemidov | Артефакты при отображении тайлов | related to | 0001163 | resolved | vdemidov | Искажения при наложении слоёв с разными проекциями |
|
Attached Files | ss1.png (684,476) 12-02-2016 08:06 https://bugtracker.sasgis.org/file_download.php?file_id=2007&type=bug finland_.hlg (252) 13-02-2016 17:19 https://bugtracker.sasgis.org/file_download.php?file_id=2008&type=bug |
|
Issue History |
Date Modified | Username | Field | Change |
12-02-2016 08:06 | dmitryP | New Issue | |
12-02-2016 08:06 | dmitryP | File Added: ss1.png | |
13-02-2016 17:19 | dmitryP | Note Added: 0017014 | |
13-02-2016 17:19 | dmitryP | File Added: finland_.hlg | |
14-02-2016 07:03 | zed | Note Added: 0017015 | |
14-02-2016 07:04 | zed | Status | new => confirmed |
28-02-2016 20:16 | vdemidov | Target Version | => 160606 |
01-03-2016 15:53 | vdemidov | Note Added: 0017047 | |
02-06-2016 16:43 | vdemidov | Assigned To | => vdemidov |
02-06-2016 16:43 | vdemidov | Status | confirmed => assigned |
02-06-2016 17:04 | vdemidov | Note Added: 0017291 | |
02-06-2016 17:04 | vdemidov | Status | assigned => resolved |
02-06-2016 17:04 | vdemidov | Fixed in Version | => 160606 |
02-06-2016 17:04 | vdemidov | Resolution | open => fixed |
16-06-2016 10:15 | vdemidov | Relationship added | related to 0002229 |
16-06-2016 10:15 | vdemidov | Relationship added | related to 0001163 |
Notes |
|
|
Дополнительная информация.
Проблема проявляется только на определенной области выделения (добавил - finland_.hlg).
После небольшого изменения (чуть увеличил) - все собралось без проблем. |
|
|
(0017015)
|
zed
|
14-02-2016 07:03
|
|
Да, под отладчиком срабатывет ассерт вот тут: \Src\RegionProcess\Combine\u_ImageLineProvider.pas, line 257
function TImageLineProviderAbstract.GetLocalLine(ALine: Integer): Pointer;
var
VMapLine: Integer;
begin
Assert(ALine >= 0);
VMapLine := FMapRect.Top + ALine;
Assert(VMapLine < FMapRect.Bottom);
Assert(VMapLine >= FPreparedMapRect.Top); // <-- вот этот ассерт
Assert(VMapLine < FPreparedMapRect.Bottom);
Result := FPreparedData[VMapLine - FPreparedMapRect.Top];
end;
|
|
|
|
Для надежности, нужно добавить такой же ассерт:
Assert(VMapLine >= FPreparedMapRect.Top);
Assert(VMapLine < FPreparedMapRect.Bottom);
в функцию GetLine после вычисления FPreparedMapRect.
Ошибка похоже в функции GetMapRectForLine. Но в чем дело я пока понять не могу. Нужно смотреть в отладчике. Вечером гляну. |
|
|
|
Это было тупо. В свое время когда работа с координатами была очень небрежна, для того что бы тайл после преобразования в географические координаты, а потом обратно, оставался тайлом, а не увеличивался на соседние была добавлена эта штука с округлением. Вот только я почему-то не учел, что 1 пиксел тайла это чуть меньше чем 0,005. Вот и получили глюки. |
|