make duplicate aggregations fail; avoid duplicate aggregations
authorCraig Dowell <craigdo@ee.washington.edu>
Thu Apr 10 13:16:43 2008 -0700 (22 months ago)
changeset 29029c2cfada5e72
parent 2901 81ac5e25e8c2
child 2903 ea31499ecbfb
make duplicate aggregations fail; avoid duplicate aggregations
examples/csma-broadcast.cc
examples/csma-multicast.cc
src/core/object.cc
     1.1 --- a/examples/csma-broadcast.cc	Wed Apr 09 10:04:16 2008 -0700
     1.2 +++ b/examples/csma-broadcast.cc	Thu Apr 10 13:16:43 2008 -0700
     1.3 @@ -74,10 +74,8 @@
     1.4    NetDeviceContainer n0 = csma.Install (c0);
     1.5    NetDeviceContainer n1 = csma.Install (c1);
     1.6  
     1.7 -
     1.8    InternetStackHelper internet;
     1.9 -  internet.Install (c0);
    1.10 -  internet.Install (c1);
    1.11 +  internet.Install (c);
    1.12  
    1.13    NS_LOG_INFO ("Assign IP Addresses.");
    1.14    Ipv4AddressHelper ipv4;
     2.1 --- a/examples/csma-multicast.cc	Wed Apr 09 10:04:16 2008 -0700
     2.2 +++ b/examples/csma-multicast.cc	Thu Apr 10 13:16:43 2008 -0700
     2.3 @@ -84,8 +84,7 @@
     2.4  
     2.5    NS_LOG_INFO ("Add IP Stack.");
     2.6    InternetStackHelper internet;
     2.7 -  internet.Install (c0);
     2.8 -  internet.Install (c1);
     2.9 +  internet.Install (c);
    2.10  
    2.11    NS_LOG_INFO ("Assign IP Addresses.");
    2.12    Ipv4AddressHelper ipv4Addr;
     3.1 --- a/src/core/object.cc	Wed Apr 09 10:04:16 2008 -0700
     3.2 +++ b/src/core/object.cc	Thu Apr 10 13:16:43 2008 -0700
     3.3 @@ -114,6 +114,13 @@
     3.4    NS_ASSERT (!o->m_disposed);
     3.5    NS_ASSERT (CheckLoose ());
     3.6    NS_ASSERT (o->CheckLoose ());
     3.7 +
     3.8 +  if (DoGetObject (o->m_tid))
     3.9 +    {
    3.10 +      NS_FATAL_ERROR ("Object::AggregateObject(): "
    3.11 +       "Multiple aggregation of objects of type " << o->m_tid.GetName ());
    3.12 +    }
    3.13 +
    3.14    Object *other = PeekPointer (o);
    3.15    Object *next = m_next;
    3.16    m_next = other->m_next;