X-Git-Url: http://www.lcore.org/git/lcore.git/blobdiff_plain/1066f857936e27fbf24d6b96b5be7703a2c0b0bf..31396218eb1b42b37f8f527f3081ea233f967ca1:/lmessages.pas?ds=sidebyside diff --git a/lmessages.pas b/lmessages.pas index d6e3745..a7bd01e 100755 --- a/lmessages.pas +++ b/lmessages.pas @@ -99,7 +99,7 @@ procedure init; implementation uses - baseunix,unix,lcore,unixutil;//,safewriteln; + baseunix,unix,lcore,unixutil,ltimevalstuff,sockets;//,safewriteln; {$i unixstuff.inc} type @@ -135,7 +135,7 @@ var //than crash after over four billion //windows have been made ;) nextwindowhandle : qword = $100000000; -{$i ltimevalstuff.inc} + //findthreaddata should only be called while holding the structurelock function findthreaddata(threadid : integer) : tthreaddata; @@ -409,15 +409,15 @@ begin //we have to get the window procedure while the structurelock //is still held as the window could be destroyed from another thread //otherwise. - if window <> nil then begin + if window <> nil then begin windowproc := window.windowproc; - end else begin - windowproc := nil; - end; + end else begin + windowproc := nil; + end; finally structurelock.release; end; - if windowproc <> nil then begin + if assigned(windowproc) then begin result := windowproc(lpmsg.hwnd,lpmsg.message,lpmsg.wparam,lpmsg.lparam); end else begin result := -1; @@ -494,7 +494,7 @@ end; function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): WINBOOL; begin - result := getmessageinternal(lpmsg,hwnd,wmsgfiltermin,wmsgfiltermax,PM_REMOVE,true); + result := getmessageinternal(lpmsg,hwnd,wmsgfiltermin,wmsgfiltermax,wRemoveMsg,true); end; function SetEvent(hEvent:THevent):WINBOOL;