diff options
-rw-r--r-- | basic/source/runtime/dllmgr-x64.cxx | 94 |
1 files changed, 50 insertions, 44 deletions
diff --git a/basic/source/runtime/dllmgr-x64.cxx b/basic/source/runtime/dllmgr-x64.cxx index a56aeee2726a..c35046a89752 100644 --- a/basic/source/runtime/dllmgr-x64.cxx +++ b/basic/source/runtime/dllmgr-x64.cxx @@ -524,52 +524,58 @@ ErrCode call( case SbxOBJECT: case SbxBOOL: case SbxBYTE: - iRetVal = - proc_i(*reinterpret_cast<double *>(&stack[0]), - *reinterpret_cast<double *>(&stack[1*8]), - *reinterpret_cast<double *>(&stack[2*8]), - *reinterpret_cast<double *>(&stack[3*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[4*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[5*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[6*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[7*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[8*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[9*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[10*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[11*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[12*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[13*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[14*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[15*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[16*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[17*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[18*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[19*8])); - break; + { + auto const st = stack.data(); + iRetVal = + proc_i(*reinterpret_cast<double *>(st + 0), + *reinterpret_cast<double *>(st + 1*8), + *reinterpret_cast<double *>(st + 2*8), + *reinterpret_cast<double *>(st + 3*8), + *reinterpret_cast<sal_uInt64 *>(st + 4*8), + *reinterpret_cast<sal_uInt64 *>(st + 5*8), + *reinterpret_cast<sal_uInt64 *>(st + 6*8), + *reinterpret_cast<sal_uInt64 *>(st + 7*8), + *reinterpret_cast<sal_uInt64 *>(st + 8*8), + *reinterpret_cast<sal_uInt64 *>(st + 9*8), + *reinterpret_cast<sal_uInt64 *>(st + 10*8), + *reinterpret_cast<sal_uInt64 *>(st + 11*8), + *reinterpret_cast<sal_uInt64 *>(st + 12*8), + *reinterpret_cast<sal_uInt64 *>(st + 13*8), + *reinterpret_cast<sal_uInt64 *>(st + 14*8), + *reinterpret_cast<sal_uInt64 *>(st + 15*8), + *reinterpret_cast<sal_uInt64 *>(st + 16*8), + *reinterpret_cast<sal_uInt64 *>(st + 17*8), + *reinterpret_cast<sal_uInt64 *>(st + 18*8), + *reinterpret_cast<sal_uInt64 *>(st + 19*8)); + break; + } case SbxSINGLE: case SbxDOUBLE: - dRetVal = - proc_d(*reinterpret_cast<double *>(&stack[0]), - *reinterpret_cast<double *>(&stack[1*8]), - *reinterpret_cast<double *>(&stack[2*8]), - *reinterpret_cast<double *>(&stack[3*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[4*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[5*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[6*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[7*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[8*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[9*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[10*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[11*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[12*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[13*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[14*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[15*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[16*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[17*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[18*8]), - *reinterpret_cast<sal_uInt64 *>(&stack[19*8])); - break; + { + auto const st = stack.data(); + dRetVal = + proc_d(*reinterpret_cast<double *>(st + 0), + *reinterpret_cast<double *>(st + 1*8), + *reinterpret_cast<double *>(st + 2*8), + *reinterpret_cast<double *>(st + 3*8), + *reinterpret_cast<sal_uInt64 *>(st + 4*8), + *reinterpret_cast<sal_uInt64 *>(st + 5*8), + *reinterpret_cast<sal_uInt64 *>(st + 6*8), + *reinterpret_cast<sal_uInt64 *>(st + 7*8), + *reinterpret_cast<sal_uInt64 *>(st + 8*8), + *reinterpret_cast<sal_uInt64 *>(st + 9*8), + *reinterpret_cast<sal_uInt64 *>(st + 10*8), + *reinterpret_cast<sal_uInt64 *>(st + 11*8), + *reinterpret_cast<sal_uInt64 *>(st + 12*8), + *reinterpret_cast<sal_uInt64 *>(st + 13*8), + *reinterpret_cast<sal_uInt64 *>(st + 14*8), + *reinterpret_cast<sal_uInt64 *>(st + 15*8), + *reinterpret_cast<sal_uInt64 *>(st + 16*8), + *reinterpret_cast<sal_uInt64 *>(st + 17*8), + *reinterpret_cast<sal_uInt64 *>(st + 18*8), + *reinterpret_cast<sal_uInt64 *>(st + 19*8)); + break; + } default: break; } |