Clarion 6.2 9046 - опять двойка ... ;)

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion 6.2 9046 - опять двойка ... ;)

Сообщение Игорь Столяров »

Привет всем !

Если кому интересно - посмотрите простой пример прикрепленный
к этому сообщению. Если собрать его под C6.2 9045 - все OK !
Если собрать под последним C6.2 9046 - GPF !

Проверяется элементарно.
Скопилируйте problem.app и несколько раз подряд нажмите кнопку RESTART в меню, если удасться, конечно ... ;)
Причина косяка очевидна и элементарна. Если будут комментарии - пишите ...
Кстати, может кто сбросит это в SV, с кратким описанием, а то у меня английский не best ... ;) Может учтут в 9047, заранее спасибо.
Аватара пользователя
StillZero
Ветеран
Сообщения: 458
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Поблагодарили: 1 раз
Контактная информация:

Сообщение StillZero »

у меня здесь двойственное чувство, с одной стороны я понимаю, что по идее должно работать, а с другой...какая то ахинея написана :)
хоть бы подробности какие для чего так делать, я в принципе тоже прогу могу завалить каким нибудь memcpy(0,0,0)

вот так будет работать (код первой процедуры):

Код: Выделить всё

  Loop
    If Main()
       loop j#=1 to 100000 ! типо подождем немного
          YIELD
       end
       Cycle
    end
    Break
  end
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Сообщение Игорь Столяров »

Применение простое - два варианта выхода из программы: просто выход и рестарт с заменой пользователя. А проблема на самом деле не с кодом, а с новым шаблоном FrameExt - если его отключить все работает отлично. Также можно добиться нормальной работы если принудительно разрушать его класс при выходе из Frame. И ошибка возникает именно при выходе из Frame и именно в нем - мой код перезапуска меню здесь не причем - его можно заменить на что угодно ... :(
Согласен - завалить можно любую программу, но ничего явно косякового я не написал вроде - все абсолютно штатно.
Может кто сбросит все-таки в буржуйский форум ?
Ответить