bridges/source/net_uno/net_bridge.cxx |    4 
 bridges/source/net_uno/net_bridge.hxx |    5 
 bridges/source/net_uno/net_data.cxx   |  351 ++++++++++++----------------------
 bridges/source/net_uno/net_func.cxx   |   17 -
 4 files changed, 137 insertions(+), 240 deletions(-)

New commits:
commit 506ca0955459398ff6059f1c4aa07996e9bd8d37
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Tue Sep 16 18:40:18 2025 +0500
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Wed Sep 17 06:17:11 2025 +0200

    map_net_value_to_uno: assignObject is always true: drop it
    
    Change-Id: Idea53cacb0003630f1f4cad95e41281cc01c8ecd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191033
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/bridges/source/net_uno/net_bridge.cxx 
b/bridges/source/net_uno/net_bridge.cxx
index 1ef22114ad26..7c9c4a99ec6b 100644
--- a/bridges/source/net_uno/net_bridge.cxx
+++ b/bridges/source/net_uno/net_bridge.cxx
@@ -46,7 +46,7 @@ void SAL_CALL Mapping_net2uno(uno_Mapping* mapping, void** 
ppOut, void* pIn,
     {
         Value interfaceValue;
         interfaceValue.interfaceData = pIn;
-        bridge->map_net_value_to_uno(*ppOut, &interfaceValue, 
pTD->aBase.pWeakRef, true, true);
+        bridge->map_net_value_to_uno(*ppOut, &interfaceValue, 
pTD->aBase.pWeakRef, true);
     }
 }
 
diff --git a/bridges/source/net_uno/net_bridge.hxx 
b/bridges/source/net_uno/net_bridge.hxx
index 9fafc1eb42cb..ab6adc1794b1 100644
--- a/bridges/source/net_uno/net_bridge.hxx
+++ b/bridges/source/net_uno/net_bridge.hxx
@@ -44,8 +44,7 @@ struct Bridge
     void map_uno_to_net_value(void* pUnoData, Value* pValue,
                               typelib_TypeDescriptionReference* pTDRef);
     void map_net_value_to_uno(void* pUnoData, Value* pValue,
-                              typelib_TypeDescriptionReference* pTDRef, bool 
destructObject,
-                              bool assignObject);
+                              typelib_TypeDescriptionReference* pTDRef, bool 
destructObject);
 
     bool call_uno_func(uno_Interface* pUnoI, const typelib_TypeDescription* 
pMethodTD,
                        typelib_TypeDescriptionReference* pReturnTDRef, int 
nParams,
diff --git a/bridges/source/net_uno/net_data.cxx 
b/bridges/source/net_uno/net_data.cxx
index 2e797361bea5..8f91c6315837 100644
--- a/bridges/source/net_uno/net_data.cxx
+++ b/bridges/source/net_uno/net_data.cxx
@@ -367,7 +367,7 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
 }
 
 void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReference* pTDRef,
-                    bool bDestructObject, bool bAssignData, Bridge& bridge)
+                    bool bDestructObject, Bridge& bridge)
 {
     switch (pTDRef->eTypeClass)
     {
@@ -383,8 +383,7 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
         case typelib_TypeClass_FLOAT:
         case typelib_TypeClass_DOUBLE:
         case typelib_TypeClass_ENUM:
-            if (bAssignData)
-                std::memcpy(pUnoData, pNetData, 
net_sizeof(pTDRef->eTypeClass));
+            std::memcpy(pUnoData, pNetData, net_sizeof(pTDRef->eTypeClass));
             break;
         case typelib_TypeClass_STRING:
         {
@@ -394,14 +393,11 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
             if (bDestructObject && ppUnoStr)
                 rtl_uString_release(*ppUnoStr);
 
-            if (bAssignData)
-            {
-                *ppUnoStr = nullptr;
-                if (pNetStr)
-                    rtl_uString_newFromStr(ppUnoStr, 
static_cast<String>(pNetStr));
-                else
-                    rtl_uString_new(ppUnoStr);
-            }
+            *ppUnoStr = nullptr;
+            if (pNetStr)
+                rtl_uString_newFromStr(ppUnoStr, static_cast<String>(pNetStr));
+            else
+                rtl_uString_new(ppUnoStr);
 
             std::free(pNetStr);
             break;
@@ -415,8 +411,7 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
             if (bDestructObject && ppUnoType)
                 typelib_typedescriptionreference_release(*ppUnoType);
 
-            if (bAssignData)
-                *ppUnoType = 
map_net_type_to_uno(OUString(static_cast<String>(pNetType)));
+            *ppUnoType = 
map_net_type_to_uno(OUString(static_cast<String>(pNetType)));
 
             std::free(pNetType);
             break;
@@ -433,169 +428,107 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
                 = 
map_net_type_to_uno(OUString(static_cast<String>(pNetAny->type)));
             std::free(pNetAny->type);
 
-            if (bAssignData)
+            switch (pValueTDRef->eTypeClass)
             {
-                switch (pValueTDRef->eTypeClass)
+                case typelib_TypeClass_VOID:
                 {
-                    case typelib_TypeClass_VOID:
-                    {
-                        pUnoAny->pType = pValueTDRef;
-                        pUnoAny->pData = &pUnoAny->pReserved;
-                        break;
-                    }
-                    case typelib_TypeClass_BOOLEAN:
-                    case typelib_TypeClass_BYTE:
-                    case typelib_TypeClass_CHAR:
-                    case typelib_TypeClass_SHORT:
-                    case typelib_TypeClass_UNSIGNED_SHORT:
-                    case typelib_TypeClass_LONG:
-                    case typelib_TypeClass_UNSIGNED_LONG:
-                    case typelib_TypeClass_FLOAT:
-                    case typelib_TypeClass_ENUM:
+                    pUnoAny->pType = pValueTDRef;
+                    pUnoAny->pData = &pUnoAny->pReserved;
+                    break;
+                }
+                case typelib_TypeClass_BOOLEAN:
+                case typelib_TypeClass_BYTE:
+                case typelib_TypeClass_CHAR:
+                case typelib_TypeClass_SHORT:
+                case typelib_TypeClass_UNSIGNED_SHORT:
+                case typelib_TypeClass_LONG:
+                case typelib_TypeClass_UNSIGNED_LONG:
+                case typelib_TypeClass_FLOAT:
+                case typelib_TypeClass_ENUM:
+                {
+                    pUnoAny->pType = pValueTDRef;
+                    pUnoAny->pData = &pUnoAny->pReserved;
+                    std::memcpy(pUnoAny->pData, &pNetAny->data, 
sizeof(IntPtr));
+                    break;
+                }
+                case typelib_TypeClass_HYPER:
+                case typelib_TypeClass_UNSIGNED_HYPER:
+                case typelib_TypeClass_DOUBLE:
+                {
+                    pUnoAny->pType = pValueTDRef;
+                    size_t size = net_sizeof(pValueTDRef->eTypeClass);
+                    if (size <= sizeof(IntPtr))
                     {
-                        pUnoAny->pType = pValueTDRef;
                         pUnoAny->pData = &pUnoAny->pReserved;
                         std::memcpy(pUnoAny->pData, &pNetAny->data, 
sizeof(IntPtr));
-                        break;
                     }
-                    case typelib_TypeClass_HYPER:
-                    case typelib_TypeClass_UNSIGNED_HYPER:
-                    case typelib_TypeClass_DOUBLE:
-                    {
-                        pUnoAny->pType = pValueTDRef;
-                        size_t size = net_sizeof(pValueTDRef->eTypeClass);
-                        if (size <= sizeof(IntPtr))
-                        {
-                            pUnoAny->pData = &pUnoAny->pReserved;
-                            std::memcpy(pUnoAny->pData, &pNetAny->data, 
sizeof(IntPtr));
-                        }
-                        else
-                        {
-                            void* mem = std::malloc(size);
-                            assert(mem);
-                            std::memcpy(mem, pNetAny->data, size);
-                            pUnoAny->pData = mem;
-                            std::free(pNetAny->data);
-                        }
-                        break;
-                    }
-                    case typelib_TypeClass_STRING:
-                    case typelib_TypeClass_TYPE:
-                    case typelib_TypeClass_INTERFACE:
-                    {
-                        if (pNetAny->data)
-                        {
-                            pUnoAny->pType = pValueTDRef;
-                            pUnoAny->pData = &pUnoAny->pReserved;
-                            pUnoAny->pReserved = nullptr;
-                            unmarshal_data(pUnoAny->pData, &pNetAny->data, 
pValueTDRef,
-                                           bDestructObject, true, bridge);
-                        }
-                        else
-                        {
-                            uno_any_construct(pUnoAny, nullptr, nullptr, 
nullptr);
-                        }
-                        break;
-                    }
-                    case typelib_TypeClass_ANY:
-                    case typelib_TypeClass_SEQUENCE:
+                    else
                     {
-                        if (pNetAny->data)
-                        {
-                            pUnoAny->pType = pValueTDRef;
-                            pUnoAny->pData = &pUnoAny->pReserved;
-                            pUnoAny->pReserved = nullptr;
-                            unmarshal_data(pUnoAny->pData, &pNetAny->data, 
pValueTDRef,
-                                           bDestructObject, true, bridge);
-                        }
-                        else
-                        {
-                            uno_any_construct(pUnoAny, nullptr, nullptr, 
nullptr);
-                        }
-                        break;
+                        void* mem = std::malloc(size);
+                        assert(mem);
+                        std::memcpy(mem, pNetAny->data, size);
+                        pUnoAny->pData = mem;
+                        std::free(pNetAny->data);
                     }
-                    case typelib_TypeClass_STRUCT:
-                    case typelib_TypeClass_EXCEPTION:
+                    break;
+                }
+                case typelib_TypeClass_STRING:
+                case typelib_TypeClass_TYPE:
+                case typelib_TypeClass_INTERFACE:
+                {
+                    if (pNetAny->data)
                     {
-                        if (pNetAny->data)
-                        {
-                            pUnoAny->pType = pValueTDRef;
-                            TypeDescHolder valueType(pValueTDRef);
-                            void* mem = std::malloc(valueType.get()->nSize);
-                            unmarshal_data(mem, &pNetAny->data, pValueTDRef, 
bDestructObject, true,
-                                           bridge);
-                            pUnoAny->pData = mem;
-                        }
-                        else
-                        {
-                            uno_any_construct(pUnoAny, nullptr, nullptr, 
nullptr);
-                        }
-                        break;
+                        pUnoAny->pType = pValueTDRef;
+                        pUnoAny->pData = &pUnoAny->pReserved;
+                        pUnoAny->pReserved = nullptr;
+                        unmarshal_data(pUnoAny->pData, &pNetAny->data, 
pValueTDRef, bDestructObject,
+                                       bridge);
                     }
-                    default:
+                    else
                     {
-                        throw BridgeRuntimeError(SAL_WHERE,
-                                                 "could not map "
-                                                     + 
OUString::unacquired(&pValueTDRef->pTypeName)
-                                                     + " into an UNO any");
+                        uno_any_construct(pUnoAny, nullptr, nullptr, nullptr);
                     }
+                    break;
                 }
-            }
-            else
-            {
-                switch (pValueTDRef->eTypeClass)
+                case typelib_TypeClass_ANY:
+                case typelib_TypeClass_SEQUENCE:
                 {
-                    case typelib_TypeClass_VOID:
-                    case typelib_TypeClass_BOOLEAN:
-                    case typelib_TypeClass_BYTE:
-                    case typelib_TypeClass_CHAR:
-                    case typelib_TypeClass_SHORT:
-                    case typelib_TypeClass_UNSIGNED_SHORT:
-                    case typelib_TypeClass_LONG:
-                    case typelib_TypeClass_UNSIGNED_LONG:
-                    case typelib_TypeClass_FLOAT:
-                    case typelib_TypeClass_ENUM:
-                        break;
-                    case typelib_TypeClass_HYPER:
-                    case typelib_TypeClass_UNSIGNED_HYPER:
-                    case typelib_TypeClass_DOUBLE:
+                    if (pNetAny->data)
                     {
-                        size_t size = net_sizeof(pValueTDRef->eTypeClass);
-                        if (pNetAny->data && size > sizeof(IntPtr))
-                            std::free(pNetAny->data);
-                        break;
+                        pUnoAny->pType = pValueTDRef;
+                        pUnoAny->pData = &pUnoAny->pReserved;
+                        pUnoAny->pReserved = nullptr;
+                        unmarshal_data(pUnoAny->pData, &pNetAny->data, 
pValueTDRef, bDestructObject,
+                                       bridge);
                     }
-                    case typelib_TypeClass_ANY:
-                    case typelib_TypeClass_SEQUENCE:
+                    else
                     {
-                        if (pNetAny->data)
-                        {
-                            unmarshal_data(pUnoAny->pData, &pNetAny->data, 
pValueTDRef,
-                                           bDestructObject, false, bridge);
-                            std::free(pNetAny->data);
-                        }
-                        break;
+                        uno_any_construct(pUnoAny, nullptr, nullptr, nullptr);
                     }
-                    case typelib_TypeClass_STRING:
-                    case typelib_TypeClass_TYPE:
-                    case typelib_TypeClass_INTERFACE:
-                    case typelib_TypeClass_STRUCT:
-                    case typelib_TypeClass_EXCEPTION:
+                    break;
+                }
+                case typelib_TypeClass_STRUCT:
+                case typelib_TypeClass_EXCEPTION:
+                {
+                    if (pNetAny->data)
                     {
-                        if (pNetAny->data)
-                        {
-                            unmarshal_data(pUnoAny->pData, &pNetAny->data, 
pValueTDRef,
-                                           bDestructObject, false, bridge);
-                        }
-                        break;
+                        pUnoAny->pType = pValueTDRef;
+                        TypeDescHolder valueType(pValueTDRef);
+                        void* mem = std::malloc(valueType.get()->nSize);
+                        unmarshal_data(mem, &pNetAny->data, pValueTDRef, 
bDestructObject, bridge);
+                        pUnoAny->pData = mem;
                     }
-                    default:
+                    else
                     {
-                        throw BridgeRuntimeError(SAL_WHERE,
-                                                 "could not map "
-                                                     + 
OUString::unacquired(&pValueTDRef->pTypeName)
-                                                     + " into an UNO any");
+                        uno_any_construct(pUnoAny, nullptr, nullptr, nullptr);
                     }
+                    break;
+                }
+                default:
+                {
+                    throw BridgeRuntimeError(
+                        SAL_WHERE, "could not map " + 
OUString::unacquired(&pValueTDRef->pTypeName)
+                                       + " into an UNO any");
                 }
             }
             break;
@@ -627,9 +560,7 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
                 case typelib_TypeClass_FLOAT:
                 case typelib_TypeClass_DOUBLE:
                 case typelib_TypeClass_ENUM:
-                    if (bAssignData)
-                        *ppUnoSeq
-                            = alloc_uno_sequence(pNetSeq->length, 
nNetElemSize, pNetSeq->data);
+                    *ppUnoSeq = alloc_uno_sequence(pNetSeq->length, 
nNetElemSize, pNetSeq->data);
                     break;
                 case typelib_TypeClass_ANY:
                 case typelib_TypeClass_SEQUENCE:
@@ -652,20 +583,16 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
                             void* pNetElem
                                 = static_cast<char*>(pNetSeq->data) + (nPos * 
nNetElemSize);
                             void* pUnoElem = (*ppUnoSeq)->elements + (nPos * 
nUnoElemSize);
-                            unmarshal_data(pUnoElem, pNetElem, pElemTDRef, 
bDestructObject,
-                                           bAssignData, bridge);
+                            unmarshal_data(pUnoElem, pNetElem, pElemTDRef, 
bDestructObject, bridge);
                         }
                     }
                     catch (...)
                     {
-                        if (bAssignData)
+                        // Clean up already converted elements
+                        for (int nClean = 0; nClean < nPos; ++nClean)
                         {
-                            // Clean up already converted elements
-                            for (int nClean = 0; nClean < nPos; ++nClean)
-                            {
-                                void* pUnoElem = (*ppUnoSeq)->elements + 
(nClean * nUnoElemSize);
-                                uno_destructData(pUnoElem, elemType.get(), 
nullptr);
-                            }
+                            void* pUnoElem = (*ppUnoSeq)->elements + (nClean * 
nUnoElemSize);
+                            uno_destructData(pUnoElem, elemType.get(), 
nullptr);
                         }
                         throw;
                     }
@@ -692,31 +619,27 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
             if (bDestructObject && ppUnoI)
                 uno_destructData(ppUnoI, type.get(), nullptr);
 
-            if (bAssignData)
+            if (pNetI)
             {
-                if (pNetI)
-                {
-                    Context* pCtx = 
static_cast<Context*>(bridge.m_net_env->pContext);
+                Context* pCtx = 
static_cast<Context*>(bridge.m_net_env->pContext);
 
-                    // Get oid and type description
-                    OUString sOid(pCtx->lookupObjectId(pNetI));
+                // Get oid and type description
+                OUString sOid(pCtx->lookupObjectId(pNetI));
 
-                    typelib_InterfaceTypeDescription* pInterfaceTD
-                        = 
reinterpret_cast<typelib_InterfaceTypeDescription*>(type.get());
+                typelib_InterfaceTypeDescription* pInterfaceTD
+                    = 
reinterpret_cast<typelib_InterfaceTypeDescription*>(type.get());
 
-                    // Get the proxy if already created, else create new
-                    *ppUnoI = nullptr;
-                    
(*bridge.m_uno_env->getRegisteredInterface)(bridge.m_uno_env,
-                                                                
reinterpret_cast<void**>(ppUnoI),
-                                                                sOid.pData, 
pInterfaceTD);
+                // Get the proxy if already created, else create new
+                *ppUnoI = nullptr;
+                (*bridge.m_uno_env->getRegisteredInterface)(
+                    bridge.m_uno_env, reinterpret_cast<void**>(ppUnoI), 
sOid.pData, pInterfaceTD);
 
-                    if (!*ppUnoI)
-                        *ppUnoI = new NetProxy(bridge, pNetI, pInterfaceTD, 
sOid);
-                }
-                else
-                {
-                    *ppUnoI = nullptr;
-                }
+                if (!*ppUnoI)
+                    *ppUnoI = new NetProxy(bridge, pNetI, pInterfaceTD, sOid);
+            }
+            else
+            {
+                *ppUnoI = nullptr;
             }
 
             break;
@@ -772,9 +695,7 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
                         case typelib_TypeClass_FLOAT:
                         case typelib_TypeClass_DOUBLE:
                         case typelib_TypeClass_ENUM:
-                            if (bAssignData)
-                                std::memcpy(pUnoField, pNetField,
-                                            
net_sizeof(pMemberTDRef->eTypeClass));
+                            std::memcpy(pUnoField, pNetField, 
net_sizeof(pMemberTDRef->eTypeClass));
                             break;
                         case typelib_TypeClass_ANY:
                         case typelib_TypeClass_SEQUENCE:
@@ -784,7 +705,7 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
                         case typelib_TypeClass_EXCEPTION:
                         case typelib_TypeClass_STRUCT:
                             unmarshal_data(pUnoField, pNetField, pMemberTDRef, 
bDestructObject,
-                                           bAssignData, bridge);
+                                           bridge);
                             break;
                         default:
                         {
@@ -800,15 +721,12 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
             }
             catch (...)
             {
-                if (bAssignData)
+                // Clean up already converted fields
+                for (int nClean = vecMembers.size() - 1; nClean > nPos; 
nClean--)
                 {
-                    // Clean up already converted fields
-                    for (int nClean = vecMembers.size() - 1; nClean > nPos; 
nClean--)
-                    {
-                        auto[pMemberTDRef, nUnoOffset] = vecMembers[nClean];
-                        void* pUnoField = static_cast<char*>(pUnoStruct) + 
nUnoOffset;
-                        uno_type_destructData(pUnoField, pMemberTDRef, 
nullptr);
-                    }
+                    auto[pMemberTDRef, nUnoOffset] = vecMembers[nClean];
+                    void* pUnoField = static_cast<char*>(pUnoStruct) + 
nUnoOffset;
+                    uno_type_destructData(pUnoField, pMemberTDRef, nullptr);
                 }
                 throw;
             }
@@ -833,10 +751,9 @@ void Bridge::map_uno_to_net_value(void* pUnoData, Value* 
pValue,
 }
 
 void Bridge::map_net_value_to_uno(void* pUnoData, Value* pValue,
-                                  typelib_TypeDescriptionReference* pTDRef, 
bool bDestructObject,
-                                  bool bAssignObject)
+                                  typelib_TypeDescriptionReference* pTDRef, 
bool bDestructObject)
 {
-    unmarshal_data(pUnoData, pValue, pTDRef, bDestructObject, bAssignObject, 
*this);
+    unmarshal_data(pUnoData, pValue, pTDRef, bDestructObject, *this);
 }
 }
 
diff --git a/bridges/source/net_uno/net_func.cxx 
b/bridges/source/net_uno/net_func.cxx
index c0e1446593ee..4f03c73e30a9 100644
--- a/bridges/source/net_uno/net_func.cxx
+++ b/bridges/source/net_uno/net_func.cxx
@@ -43,7 +43,7 @@ void Bridge::call_net_func(IntPtr pNetI, const 
typelib_TypeDescription* pMethodT
         {
             if (param.bOut)
                 map_net_value_to_uno(pArgs[i], &pArgsRetExc[i], param.pTypeRef,
-                                     param.bIn && param.bOut, true);
+                                     param.bIn && param.bOut);
         }
         catch (...)
         {
@@ -63,13 +63,13 @@ void Bridge::call_net_func(IntPtr pNetI, const 
typelib_TypeDescription* pMethodT
     if (error)
     {
         map_net_value_to_uno(*pExc, &pArgsRetExc[nParams + 1],
-                             
cppu::UnoType<css::uno::Any>::get().getTypeLibType(), false, true);
+                             
cppu::UnoType<css::uno::Any>::get().getTypeLibType(), false);
     }
     else
     {
         if (pReturnTDRef && pReturnTDRef->eTypeClass != typelib_TypeClass_VOID)
         {
-            map_net_value_to_uno(pRet, &pArgsRetExc[nParams], pReturnTDRef, 
false, true);
+            map_net_value_to_uno(pRet, &pArgsRetExc[nParams], pReturnTDRef, 
false);
         }
 
         *pExc = nullptr;
@@ -150,7 +150,7 @@ bool Bridge::call_uno_func(uno_Interface* pUnoI, const 
typelib_TypeDescription*
             try
             {
                 // in, in/out params
-                map_net_value_to_uno(uno_args[i], &pArgs[i], type, false, 
true);
+                map_net_value_to_uno(uno_args[i], &pArgs[i], type, false);
             }
             catch (...)
             {
commit 82347d2f6086c732bb6c869b589e0c4daa3e4976
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Tue Sep 16 17:19:52 2025 +0500
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Wed Sep 17 06:17:06 2025 +0200

    map_uno_to_net_value: destructValue is always false: drop it
    
    Change-Id: I3ebc69a1978a6f0c74680bf18da3347bd6dbe767
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191032
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    Tested-by: Jenkins

diff --git a/bridges/source/net_uno/net_bridge.cxx 
b/bridges/source/net_uno/net_bridge.cxx
index 19a15a8ad0e1..1ef22114ad26 100644
--- a/bridges/source/net_uno/net_bridge.cxx
+++ b/bridges/source/net_uno/net_bridge.cxx
@@ -61,7 +61,7 @@ void SAL_CALL Mapping_uno2net(uno_Mapping* mapping, void** 
ppOut, void* pIn,
     if (pIn)
     {
         Value interfaceValue;
-        bridge->map_uno_to_net_value(&pIn, &interfaceValue, 
pTD->aBase.pWeakRef, false);
+        bridge->map_uno_to_net_value(&pIn, &interfaceValue, 
pTD->aBase.pWeakRef);
         *ppOut = interfaceValue.interfaceData;
     }
 }
diff --git a/bridges/source/net_uno/net_bridge.hxx 
b/bridges/source/net_uno/net_bridge.hxx
index 19c07243743a..9fafc1eb42cb 100644
--- a/bridges/source/net_uno/net_bridge.hxx
+++ b/bridges/source/net_uno/net_bridge.hxx
@@ -42,7 +42,7 @@ struct Bridge
     void release();
 
     void map_uno_to_net_value(void* pUnoData, Value* pValue,
-                              typelib_TypeDescriptionReference* pTDRef, bool 
destructValue);
+                              typelib_TypeDescriptionReference* pTDRef);
     void map_net_value_to_uno(void* pUnoData, Value* pValue,
                               typelib_TypeDescriptionReference* pTDRef, bool 
destructObject,
                               bool assignObject);
diff --git a/bridges/source/net_uno/net_data.cxx 
b/bridges/source/net_uno/net_data.cxx
index 667f65f7ac88..2e797361bea5 100644
--- a/bridges/source/net_uno/net_data.cxx
+++ b/bridges/source/net_uno/net_data.cxx
@@ -76,7 +76,7 @@ uno_Sequence* alloc_uno_sequence(sal_Int32 nElements, 
sal_Int32 nElementSize, vo
 }
 
 void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReference* pTDRef,
-                  bool bDestructValue, Bridge& bridge)
+                  Bridge& bridge)
 {
     switch (pTDRef->eTypeClass)
     {
@@ -99,9 +99,6 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
             IntPtr* ppNetStr = static_cast<IntPtr*>(pNetData);
             rtl_uString* pUnoStr = *static_cast<rtl_uString**>(pUnoData);
 
-            if (bDestructValue && pNetData)
-                std::free(pNetData);
-
             *ppNetStr = alloc_net_string(OUString::unacquired(&pUnoStr));
             break;
         }
@@ -111,9 +108,6 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
             typelib_TypeDescriptionReference* pUnoType
                 = *static_cast<typelib_TypeDescriptionReference**>(pUnoData);
 
-            if (bDestructValue && pNetData)
-                std::free(pNetData);
-
             *ppNetType = alloc_net_string(map_uno_type_to_net(pUnoType));
             break;
         }
@@ -122,11 +116,6 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
             Value::Any* ppNetAny = static_cast<Value::Any*>(pNetData);
             uno_Any* pUnoAny = static_cast<uno_Any*>(pUnoData);
 
-            if (bDestructValue && ppNetAny->type)
-                std::free(ppNetAny->type);
-            if (bDestructValue && ppNetAny->data)
-                std::free(ppNetAny->data);
-
             ppNetAny->type = 
alloc_net_string(map_uno_type_to_net(pUnoAny->pType));
 
             switch (pUnoAny->pType->eTypeClass)
@@ -168,7 +157,7 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
                 case typelib_TypeClass_SEQUENCE:
                 {
                     IntPtr mem = 
std::malloc(net_sizeof(pUnoAny->pType->eTypeClass));
-                    marshal_data(pUnoAny->pData, mem, pUnoAny->pType, 
bDestructValue, bridge);
+                    marshal_data(pUnoAny->pData, mem, pUnoAny->pType, bridge);
                     std::free(ppNetAny->data);
                     ppNetAny->data = mem;
                     break;
@@ -178,8 +167,7 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
                 case typelib_TypeClass_INTERFACE:
                 case typelib_TypeClass_EXCEPTION:
                 case typelib_TypeClass_STRUCT:
-                    marshal_data(pUnoAny->pData, &ppNetAny->data, 
pUnoAny->pType, bDestructValue,
-                                 bridge);
+                    marshal_data(pUnoAny->pData, &ppNetAny->data, 
pUnoAny->pType, bridge);
                     break;
                 default:
                 {
@@ -196,9 +184,6 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
             Value::Sequence* ppNetSeq = 
static_cast<Value::Sequence*>(pNetData);
             uno_Sequence* pUnoSeq = *static_cast<uno_Sequence**>(pUnoData);
 
-            if (bDestructValue && ppNetSeq->data)
-                std::free(ppNetSeq->data);
-
             ppNetSeq->length = pUnoSeq->nElements;
 
             TypeDescHolder type(pTDRef);
@@ -245,7 +230,7 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
                     {
                         void* pNetElem = static_cast<char*>(ppNetSeq->data) + 
(nPos * nNetElemSize);
                         void* pUnoElem = pUnoSeq->elements + (nPos * 
nUnoElemSize);
-                        marshal_data(pUnoElem, pNetElem, pElemTDRef, 
bDestructValue, bridge);
+                        marshal_data(pUnoElem, pNetElem, pElemTDRef, bridge);
                     }
                     break;
                 }
@@ -304,9 +289,6 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
             IntPtr* ppNetStruct = static_cast<IntPtr*>(pNetData);
             void* pUnoStruct = pUnoData;
 
-            if (bDestructValue && *ppNetStruct)
-                std::free(*ppNetStruct);
-
             TypeDescHolder type(pTDRef);
             typelib_CompoundTypeDescription* pCompTD
                 = 
reinterpret_cast<typelib_CompoundTypeDescription*>(type.get());
@@ -360,7 +342,7 @@ void marshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionReferen
                     case typelib_TypeClass_INTERFACE:
                     case typelib_TypeClass_EXCEPTION:
                     case typelib_TypeClass_STRUCT:
-                        marshal_data(pUnoField, pNetField, pMemberTDRef, 
bDestructValue, bridge);
+                        marshal_data(pUnoField, pNetField, pMemberTDRef, 
bridge);
                         break;
                     default:
                     {
@@ -845,9 +827,9 @@ void unmarshal_data(void* pUnoData, void* pNetData, 
typelib_TypeDescriptionRefer
 }
 
 void Bridge::map_uno_to_net_value(void* pUnoData, Value* pValue,
-                                  typelib_TypeDescriptionReference* pTDRef, 
bool bDestructValue)
+                                  typelib_TypeDescriptionReference* pTDRef)
 {
-    marshal_data(pUnoData, pValue, pTDRef, bDestructValue, *this);
+    marshal_data(pUnoData, pValue, pTDRef, *this);
 }
 
 void Bridge::map_net_value_to_uno(void* pUnoData, Value* pValue,
diff --git a/bridges/source/net_uno/net_func.cxx 
b/bridges/source/net_uno/net_func.cxx
index 788bfe1a76c4..c0e1446593ee 100644
--- a/bridges/source/net_uno/net_func.cxx
+++ b/bridges/source/net_uno/net_func.cxx
@@ -26,7 +26,7 @@ void Bridge::call_net_func(IntPtr pNetI, const 
typelib_TypeDescription* pMethodT
         const typelib_MethodParameter& param = pParams[i];
         if (param.bIn)
         {
-            map_uno_to_net_value(pArgs[i], &pArgsRetExc[i], param.pTypeRef, 
false);
+            map_uno_to_net_value(pArgs[i], &pArgsRetExc[i], param.pTypeRef);
         }
     }
 
@@ -186,7 +186,7 @@ bool Bridge::call_uno_func(uno_Interface* pUnoI, const 
typelib_TypeDescription*
             {
                 try
                 {
-                    map_uno_to_net_value(uno_args[i], &pArgs[i], 
param.pTypeRef, false);
+                    map_uno_to_net_value(uno_args[i], &pArgs[i], 
param.pTypeRef);
                 }
                 catch (...)
                 {
@@ -216,7 +216,7 @@ bool Bridge::call_uno_func(uno_Interface* pUnoI, const 
typelib_TypeDescription*
             // Convert uno return value
             try
             {
-                map_uno_to_net_value(uno_ret, pRet, pReturnTDRef, false);
+                map_uno_to_net_value(uno_ret, pRet, pReturnTDRef);
                 uno_type_destructData(uno_ret, pReturnTDRef, nullptr);
             }
             catch (...)
@@ -240,8 +240,7 @@ bool Bridge::call_uno_func(uno_Interface* pUnoI, const 
typelib_TypeDescription*
             }
         }
 
-        map_uno_to_net_value(uno_exc, pExc, 
cppu::UnoType<css::uno::Any>::get().getTypeLibType(),
-                             false);
+        map_uno_to_net_value(uno_exc, pExc, 
cppu::UnoType<css::uno::Any>::get().getTypeLibType());
 
         return false;
     }

Reply via email to