[prev in list] [next in list] [prev in thread] [next in thread] 

List:       twsocket
Subject:    [twsocket] x64 adaptation
From:       "Anton S." <ant_s () rambler ! ru>
Date:       2011-01-20 17:34:35
Message-ID: op.vpma3xpo0cp6fo () i519-sas-55
[Download RAW message or body]

I recently reviewed all my projects to be ready to x64 (replaced things like \
Integer(Pointer) ) and also checked code of some components I use. The main idea is \
not to cast pointers/handles to integer/cardinal as they may exceed 4 bytes on x64 \
systems. Emb-ro introduced two new types: Native(U)Int that will always have the same \
size as Handle/Pointer. So I believe the changes could be done right now. Here's what \
I found in ICS.

OverbyteIcsUtils.pas

1) if Integer(FHandle) >= 0 then // NativeInt() but not necessary as it's for old \
compilers

2) TIcsIntegerList.Get***, all Integer() casts

3) Cardinal(Pointer(Result)^) := Len;

4) if Cardinal(FHandle) = INVALID_HANDLE_VALUE then // (twice) to NativeUInt

OverbyteIcsWndControl.pas

1) KillTimer(FIcsWndControl.Handle, Cardinal(Integer(IntPtr(FHandleGC))));
2)        if SetTimer(FIcsWndControl.Handle,
                    Cardinal(Integer(IntPtr(FHandleGC))), FInterval, nil) = 0 then \
begin 3) KillTimer(FIcsWndControl.Handle, Cardinal(Self));
4)        if SetTimer(FIcsWndControl.Handle,
                    Cardinal(Self), FInterval, nil) = 0 then begin

There are other some Integer() stuff but inside IFDEF CLR sections and I have no idea \
on what things in x64 .Net are (and even if they differ from x32 at all).

-- 
Anton
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic