summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-11-18 17:01:13 +0100
committerStephan Bergmann <sbergman@redhat.com>2015-11-18 21:11:02 +0000
commitf08d0142afbcb45c12604988022bb3da18be1d84 (patch)
treed00245e0d20467967059d1f6acbf0497f1f5f536 /framework
parentf1132fd50a2c5c0e3de5656382b4cea1e826e520 (diff)
Fix css.awt.XSystemDependentMenuPeer.getMenuHandle
...to return an ANY containing a 64-bit HYPER instead of a 32-bit LONG for SYSTEM_WIN32 (which covers both 32-bit and 64-bit versions of Windows), so that the HMENU value (which is effectively a void*) is not truncated for the 64-bit build. This should effectively be URE ABI compatible for the 32-bit build, as there the HYPER value will fit into 32 bits, so extracting a LONG from the ANY should still work. Change-Id: Ief3de5924f672e8f6bbe6df08c15439456ca036f Reviewed-on: https://gerrit.libreoffice.org/20045 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'framework')
-rw-r--r--framework/source/uielement/menubarmanager.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index 3f44ebeeb7e7..5f2b85a10e31 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -210,7 +210,8 @@ Any SAL_CALL MenuBarManager::getMenuHandle( const Sequence< sal_Int8 >& /*Proces
#ifdef _WIN32
if( SystemType == SystemDependent::SYSTEM_WIN32 )
{
- a <<= (long) aSystemMenuData.hMenu;
+ a <<= sal_Int64(
+ reinterpret_cast<sal_IntPtr>(aSystemMenuData.hMenu));
}
#else
(void) SystemType;