diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-06-02 16:38:12 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-06-02 16:38:12 +0100 |
commit | ac9fcba54aa2a6b4378ec1841ccb16a53d294453 (patch) | |
tree | 00bbb6aee3410c94cbbd7dfacefed4d0265a62ad /binaryurp/source/incomingrequest.cxx | |
parent | cc3fd6bb907ad2fcadec08591341f97707c07c0e (diff) |
round allocated struct return space to sizeof(size_t)
this fixes the sfx2 subsequenttest
Diffstat (limited to 'binaryurp/source/incomingrequest.cxx')
-rw-r--r-- | binaryurp/source/incomingrequest.cxx | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/binaryurp/source/incomingrequest.cxx b/binaryurp/source/incomingrequest.cxx index 646a868f66fd..e6dde0683c8e 100644 --- a/binaryurp/source/incomingrequest.cxx +++ b/binaryurp/source/incomingrequest.cxx @@ -131,6 +131,11 @@ void IncomingRequest::execute() const { } } +static size_t size_t_round(size_t val) +{ + return (val + (sizeof(size_t)-1)) & ~(sizeof(size_t)-1); +} + bool IncomingRequest::execute_throw( BinaryAny * returnValue, std::vector< BinaryAny > * outArguments) const { @@ -246,7 +251,10 @@ bool IncomingRequest::execute_throw( OSL_ASSERT(false); // this cannot happen break; } - std::vector< char > retBuf(retType.is() ? retType.get()->nSize : 0); + size_t nSize = 0; + if (retType.is()) + nSize = size_t_round(retType.get()->nSize); + std::vector< char > retBuf(nSize); uno_Any exc; uno_Any * pexc = &exc; (*object_.get()->pDispatcher)( |