dim-s / soulengine

Windows GUI library for php (by Develstudio project)
23 stars 20 forks source link

bug с c('chromiumN')->free(); #5

Open vGhost2000 opened 11 years ago

vGhost2000 commented 11 years ago

файл uPHPMod.pas: процедура TphpMOD._ChromiumFunctions1Execute - в uPHPMod.dfm называется chromium_free, но по коду таковой не является. В итоге c('chromiumN')->free(); не приводит абсолютно не к чему.

1) в uPHPMod.dfm переименовать chromium_free во что нибудь более смыслу соответствующее ну там не знаю например chromium_exec2

2) в core/main/web.php удалить строки:

    public function free(){
        chromium_free($this->self);
    }

тогда будет срабатывать родительский метод и c('chromiumN')->free(); будет отрабатывать как задумано.

dim-s commented 11 years ago

Не нужно ее переименовывать в chromium_exec2, она должно уничтожать объект хромиума. Из-за бага PHP4Delphi иногда после удаления функции-объекта, происходит смещение событий, приводя к таким вот досадным багам.

vGhost2000 commented 11 years ago

А зачем там отдельная процедура для уничтожения объекта хромиума, когда стандартная TObject::free() -> gui_destroy(...) из родительского класса с этой задачей отлично справляется?

dim-s commented 11 years ago

Не помню почему, был какой-то глюк, по-идее должен работать и gui_destroy.

ghost commented 5 years ago

Не помню почему, был какой-то глюк, по-идее должен работать и gui_destroy.

Может потому, что TChromium - интерфейсный объект, создающийся на стороне библиотеки? Anyway there's only one reason for that: use chromium_free + gui_safedestroy after.