You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reported by jteh on 2011-12-07 02:12
The vbuf IDL typedefs VBufRemote_nodeHandle_t as long, but long is only ever 32 bit. However, internally, that handle just encapsulates a pointer, which could be a 64 bit pointer. Thus, in a 64 bit process, this could cause problems.
We can either make it something like a __int64 (what ever the idl equivalent is) or we could make it itself be a contextHandle, thus allowing us to make it void_. Note that you are not aloud to use void_ in idl unless its a contextHandle.
The text was updated successfully, but these errors were encountered:
Comment 1 by jteh on 2011-12-07 02:14
I assume that if we make it a context handle, it will get marshalled correctly to us as a 32 bit pointer, even if the remote process is 64 bit? Are we certain of this?
Comment 2 by mdcurran on 2012-12-05 06:01
In c007f49 VBufRemote_nodeHandle_t is now an unsigned hyper. Though to do this all the methods that returned this handle had to be rewritten to provide the handle as a final out parameter otherwize it would not compile due to complaints about optimization -- perhaps RPC can't officially return anything greater than 32 bit.
I believe I have made all the necessary changes in NVDA's virtualBuffer classes, and quick tests in Firefox, iTunes and IE seem to suggest that things work.
However, I have not tested this on a pure 32-bit system yet. Not expecting anything to break but I would like some confirmation that it does still in deed work.
Changes:
Milestone changed from near-term to 2013.1
Reported by jteh on 2011-12-07 02:12
The vbuf IDL typedefs VBufRemote_nodeHandle_t as long, but long is only ever 32 bit. However, internally, that handle just encapsulates a pointer, which could be a 64 bit pointer. Thus, in a 64 bit process, this could cause problems.
We can either make it something like a
__int64
(what ever the idl equivalent is) or we could make it itself be a contextHandle, thus allowing us to make it void_. Note that you are not aloud to use void_ in idl unless its a contextHandle.The text was updated successfully, but these errors were encountered: