Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 12 из 12

Тема: dc_SleepFix

  1. #11
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Да, оно работает. Здесь же не подмена функции, а её "дополнение":
    PHP код:
    #define sleep%0\n%9 sleep FIXES_sleep(%0) 
    Вот во что превращается код после работы препроцессора:
    PHP код:
    main()
    {
        new 
    a;
        while (++
    a) {
            
    printf("%d"a);
            
    sleep FIXES_sleep ( (100));    }

    Проверил. Хорошо, допустим, но за пределами main этот фикс всё так же не работает. Да и от вызова heapspace по прежнему нет никакого толку. Я попробовал убрать вызов той функции и фикс работал точно так же, никаких ошибок при выполнении в main. Замечу, я уже писал выше о бесполезности heapspace.

    Вообще у Y_Less'а довольно интересный вариант. Никогда бы не подумал, что в Pawn можно использовать рекурсивные макросы, но Y_Less всё же придумал костыль (просто решением это назвать нельзя, поскольку его способ портит отступы, хоть это и видно только в препроцессе; да и способ этот далеко не самый простой). Но всё же надо будет запомнить тот метод.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  2. Пользователь сказал cпасибо:
    L0ndl3m (14.01.2016)
  3. #12
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Проверил. Хорошо, допустим, но за пределами main этот фикс всё так же не работает.
    Дак целью было избавиться от ошибки "stack/heap collision", а не заставить эту функцию работать везде.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Да и от вызова heapspace по-прежнему нет никакого толку. Я попробовал убрать вызов той функции и фикс работал точно так же, никаких ошибок при выполнении в main.
    Хм, и правда. Видимо достаточно перед вызовом sleep просто вернуть какое-нибудь значение.

  4. Пользователь сказал cпасибо:
    L0ndl3m (14.01.2016)
 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •