VirtualBox

Changeset 50416 in vbox for trunk/include/VBox/com


Ignore:
Timestamp:
Feb 11, 2014 6:00:45 PM (11 years ago)
Author:
vboxsync
Message:

Main: fix the remaining NULL safearray issues, the template had useless assertions and the helper code used by the wrappers also needed to check for it everywhere

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/com/array.h

    r49765 r50416  
    44
    55/*
    6  * Copyright (C) 2006-2013 Oracle Corporation
     6 * Copyright (C) 2006-2014 Oracle Corporation
    77 *
    88 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    642642    SafeArray(ComSafeArrayIn(T, aArg))
    643643    {
    644 #ifdef VBOX_WITH_XPCOM
    645 
    646         AssertReturnVoid(aArg != NULL);
    647 
    648         m.size = aArgSize;
    649         m.arr = aArg;
    650         m.isWeak = true;
     644        if (aArg)
     645        {
     646#ifdef VBOX_WITH_XPCOM
     647
     648            m.size = aArgSize;
     649            m.arr = aArg;
     650            m.isWeak = true;
    651651
    652652#else /* !VBOX_WITH_XPCOM */
    653653
    654         AssertReturnVoid(aArg != NULL);
    655         SAFEARRAY *arg = aArg;
    656 
    657         if (arg)
    658         {
     654            SAFEARRAY *arg = aArg;
     655
    659656            AssertReturnVoid(arg->cDims == 1);
    660657
     
    676673            rc = SafeArrayAccessData(arg, (void HUGEP **)&m.raw);
    677674            AssertComRCReturnVoid(rc);
    678         }
    679 
    680         m.arr = arg;
    681         m.isWeak = true;
     675
     676            m.arr = arg;
     677            m.isWeak = true;
    682678
    683679#endif /* !VBOX_WITH_XPCOM */
     680        }
    684681    }
    685682
     
    10171014    virtual SafeArray &detachTo(ComSafeArrayOut(T, aArg))
    10181015    {
    1019         AssertReturn(m.isWeak == false, *this);
     1016        AssertReturn(!m.isWeak, *this);
    10201017
    10211018#ifdef VBOX_WITH_XPCOM
     
    15931590    SafeIfaceArray(ComSafeArrayIn(I *, aArg))
    15941591    {
    1595 #ifdef VBOX_WITH_XPCOM
    1596 
    1597         AssertReturnVoid(aArg != NULL);
    1598 
    1599         Base::m.size = aArgSize;
    1600         Base::m.arr = aArg;
    1601         Base::m.isWeak = true;
     1592        if (aArg)
     1593        {
     1594#ifdef VBOX_WITH_XPCOM
     1595
     1596            Base::m.size = aArgSize;
     1597            Base::m.arr = aArg;
     1598            Base::m.isWeak = true;
    16021599
    16031600#else /* !VBOX_WITH_XPCOM */
    16041601
    1605         AssertReturnVoid(aArg != NULL);
    1606         SAFEARRAY *arg = aArg;
    1607 
    1608         if (arg)
    1609         {
     1602            SAFEARRAY *arg = aArg;
     1603
    16101604            AssertReturnVoid(arg->cDims == 1);
    16111605
     
    16251619            rc = SafeArrayAccessData(arg, (void HUGEP **)&m.raw);
    16261620            AssertComRCReturnVoid(rc);
    1627         }
    1628 
    1629         m.arr = arg;
    1630         m.isWeak = true;
     1621
     1622            m.arr = arg;
     1623            m.isWeak = true;
    16311624
    16321625#endif /* !VBOX_WITH_XPCOM */
     1626        }
    16331627    }
    16341628
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette