OberonCore
https://forum.oberoncore.ru/

Патч AbfMedia
https://forum.oberoncore.ru/viewtopic.php?f=23&t=886
Страница 1 из 1

Автор:  hothing [ Среда, 20 Февраль, 2008 17:15 ]
Заголовок сообщения:  Патч AbfMedia

ТРАП при внедрении картинки.

Код:
PROCEDURE (v: StdView) SetEmbLink (link: ARRAY OF CHAR);
...
                v.link := link$;
      (* PATCH BEGIN *)
      SplitPath(v.link, name);
      src := Files.dir.Old(Files.dir.This(v.link$), name$, TRUE);
      ASSERT(src # NIL, 101);      
      v.link := name$;
      v.browser := NIL;
      v.embedded := TRUE;
      (* PATCH END *)
      (* loading external data *)
      NEW(v.data);

Автор:  Илья Ермаков [ Среда, 20 Февраль, 2008 21:19 ]
Заголовок сообщения:  Re: Патч AbfMedia

В смысле, Вам хочется, чтобы при открытии несуществующего файла вместо NIL dereference было срабатывание ASSERT? Разумно, только тогда уж это не инвариант, а предусловие, по сути своей (код 21).

Автор:  hothing [ Четверг, 21 Февраль, 2008 10:18 ]
Заголовок сообщения:  Re: Патч AbfMedia

Нет, Илья. Смысл патча совсем не в АССЕРТЕ. Иначе я его не выкладывал бы.
Сравните два варианта кода, Ваш и мой.
Ошибка была в том, что в оригинальном коде файл открывали в текущей директории, т.е. совсем не там где он лежит. Если внедрять картинки из корня ЧЯ - все работает. А если по-пытаться внедрить файл находящейся в другом месте - получаем ТРАП.

АССЕРТ - не вполне разумное решение, временное. Отсутсвие файла - не такая уж необычная ситуация (например, нет связи по сети). Надо что-то другое :)

ЗЫ Вот если у Вас оригинальный код работает при внедрении файл из любого места, значит у меня особо зловредная система :D

Автор:  Евгений Темиргалеев [ Четверг, 21 Февраль, 2008 10:48 ]
Заголовок сообщения:  Re: Патч AbfMedia

hothing писал(а):
Если внедрять картинки из корня ЧЯ - все работает. А если по-пытаться внедрить файл находящейся в другом месте - получаем ТРАП.
Особо не пользовался, но такой вот путь работает "RODead\Mod\modMoveRecSchema.PNG". Не хотите относит рабочего каталога ББ, пишите полный путь "e:\dedOK\BB\RODead\Mod\modMoveRecSchema.PNG" - тоже работает.

Автор:  hothing [ Четверг, 21 Февраль, 2008 10:52 ]
Заголовок сообщения:  Re: Патч AbfMedia

Может быть. У меня вывалился ТРАП когда захотел вставить картинку из директории "Мои рисунки". Проверил на других директориях - тот же ТРАП. После патча - все ОК.

Автор:  Евгений Темиргалеев [ Четверг, 21 Февраль, 2008 10:58 ]
Заголовок сообщения:  Re: Патч AbfMedia

Попробовал, вставился абсолютный путь "C:\Documents and Settings\All Users\Документы\Мои рисунки\Образцы рисунков\Голубые холмы.jpg", никаких трапов. :?

Автор:  hothing [ Четверг, 21 Февраль, 2008 11:06 ]
Заголовок сообщения:  Re: Патч AbfMedia

С учетом предидущих событий (патч для HostPorts), остается только процитировать себя самого
hothing писал(а):
значит у меня особо зловредная система :D
А своим глазам я верю :)

Евгений, а Вы опцию "внедрить" включали? По-умолчанию, она отключена. И все работает замечательно.

Автор:  Евгений Темиргалеев [ Четверг, 21 Февраль, 2008 12:02 ]
Заголовок сообщения:  Re: Патч AbfMedia

Такие опции я зарёкся включать, когда у меня Ворд целую кучу внедренных картинок заменил красными крестами, после чего пришлось внедрять их по новой.

С внедрением при абсолютном пути и правда трэп.

Автор:  Илья Ермаков [ Четверг, 21 Февраль, 2008 22:14 ]
Заголовок сообщения:  Re: Патч AbfMedia

Да, всё верно. Исправление принято.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/