diff --git a/examples/simple-p2p.cc b/examples/simple-p2p.cc index 461782eef..09f8721d8 100644 --- a/examples/simple-p2p.cc +++ b/examples/simple-p2p.cc @@ -101,10 +101,10 @@ int main (int argc, char *argv[]) // Here, we will explicitly create four nodes. In more sophisticated // topologies, we could configure a node factory. - Ptr n0 = new InternetNode (); - Ptr n1 = new InternetNode (); - Ptr n2 = new InternetNode (); - Ptr n3 = new InternetNode (); + Ptr n0 = MakeNewObject (); + Ptr n1 = MakeNewObject (); + Ptr n2 = MakeNewObject (); + Ptr n3 = MakeNewObject (); // We create the channels first without any IP addressing information Ptr channel0 = @@ -134,7 +134,7 @@ int main (int argc, char *argv[]) // Create the OnOff application to send UDP datagrams of size // 210 bytes at a rate of 448 Kb/s - Ptr ooff0 = new OnOffApplication( + Ptr ooff0 = MakeNewObject ( n0, Ipv4Address("10.1.3.2"), 80, @@ -151,7 +151,7 @@ int main (int argc, char *argv[]) ooff0->Stop (Seconds(10.0)); // Create a similar flow from n3 to n1, starting at time 1.1 seconds - Ptr ooff1 = new OnOffApplication( + Ptr ooff1 = MakeNewObject ( n3, Ipv4Address("10.1.2.1"), 80, diff --git a/samples/main-simple.cc b/samples/main-simple.cc index db6f57736..186035b97 100644 --- a/samples/main-simple.cc +++ b/samples/main-simple.cc @@ -38,7 +38,7 @@ PrintTraffic (Ptr socket) void RunSimulation (void) { - Ptr a = new InternetNode (); + Ptr a = MakeNewObject (); Ptr udp = a->QueryInterface (IUdp::iid); diff --git a/src/core/ns-unknown-manager.cc b/src/core/ns-unknown-manager.cc index 6f4ab3bfb..46dbb2a12 100644 --- a/src/core/ns-unknown-manager.cc +++ b/src/core/ns-unknown-manager.cc @@ -141,7 +141,7 @@ A::A () m_oneBoolInvoked (false), m_oneUi32Invoked (false) { - ns3::Ptr b = new B (); + ns3::Ptr b = ns3::MakeNewObject (); AddInterface (b); } @@ -152,7 +152,7 @@ A::A (bool bo) m_oneUi32Invoked (false), m_bool (bo) { - ns3::Ptr b = new B (); + ns3::Ptr b = ns3::MakeNewObject (); AddInterface (b); } @@ -163,7 +163,7 @@ A::A (uint32_t i) m_oneUi32Invoked (true), m_ui32 (i) { - ns3::Ptr b = new B (); + ns3::Ptr b = ns3::MakeNewObject (); AddInterface (b); } diff --git a/src/core/ns-unknown-manager.h b/src/core/ns-unknown-manager.h index c2941b830..85987fb5a 100644 --- a/src/core/ns-unknown-manager.h +++ b/src/core/ns-unknown-manager.h @@ -259,19 +259,19 @@ template Ptr NsUnknownManager::MakeObjectZero (void) { - return new T (); + return MakeNewObject (); } template Ptr NsUnknownManager::MakeObjectOne (T1 a1) { - return new T (a1); + return MakeNewObject (a1); } template Ptr NsUnknownManager::MakeObjectTwo (T1 a1, T2 a2) { - return new T (a1, a2); + return MakeNewObject (a1, a2); } } // namespace ns3 diff --git a/src/core/ns-unknown.cc b/src/core/ns-unknown.cc index 05d384929..15f433c1b 100644 --- a/src/core/ns-unknown.cc +++ b/src/core/ns-unknown.cc @@ -65,7 +65,7 @@ private: }; NsUnknownImpl::NsUnknownImpl (Iid iid, NsUnknown * interface) - : m_ref (0), + : m_ref (1), m_disposed (false) { NS_DEBUG ("new " << this << " ref=" << m_ref); @@ -316,9 +316,9 @@ InterfaceTest::RunTests (void) //DerivedAB *derivedAB; - Ptr a = new A (); + Ptr a = MakeNewObject (); - a = new A (); + a = MakeNewObject (); Ptr a1 = a->QueryInterface (A::iid); if (a1 == 0 || a1 != a) { @@ -330,14 +330,14 @@ InterfaceTest::RunTests (void) ok = false; } - Ptr b = new B (); + Ptr b = MakeNewObject (); Ptr b1 = b->QueryInterface (B::iid); if (b1 == 0 || b1 != b) { ok = false; } - a = new A (); + a = MakeNewObject (); a->AddInterface (b); b1 = b->QueryInterface (B::iid); if (b1 == 0 || b1 != b) @@ -360,7 +360,7 @@ InterfaceTest::RunTests (void) ok = false; } - Ptr derived = new Derived (); + Ptr derived = MakeNewObject (); Ptr base = derived->QueryInterface (Base::iid); if (base == 0) { diff --git a/src/core/object.cc b/src/core/object.cc index 77bfbe76f..6dc61b4b7 100644 --- a/src/core/object.cc +++ b/src/core/object.cc @@ -27,7 +27,7 @@ NS_DEBUG_COMPONENT_DEFINE ("Object"); namespace ns3 { Object::Object () - : m_count (0), + : m_count (1), m_disposed (false) { NS_DEBUG ("Object::Object: m_count=0"); diff --git a/src/devices/p2p/p2p-topology.cc b/src/devices/p2p/p2p-topology.cc index d06093fd4..730c7e74f 100644 --- a/src/devices/p2p/p2p-topology.cc +++ b/src/devices/p2p/p2p-topology.cc @@ -45,15 +45,15 @@ PointToPointTopology::AddPointToPointLink( const DataRate& bps, const Time& delay) { - Ptr channel = new PointToPointChannel(bps, delay); + Ptr channel = MakeNewObject (bps, delay); - Ptr net1 = new PointToPointNetDevice(n1); + Ptr net1 = MakeNewObject (n1); net1->AddQueue(Queue::Default().Copy()); n1->AddDevice (net1); net1->Attach (channel); - Ptr net2 = new PointToPointNetDevice(n2); + Ptr net2 = MakeNewObject (n2); net2->AddQueue(Queue::Default().Copy()); n2->AddDevice (net2); diff --git a/src/internet-node/internet-node.cc b/src/internet-node/internet-node.cc index 33902fecf..d2e8d2ae4 100644 --- a/src/internet-node/internet-node.cc +++ b/src/internet-node/internet-node.cc @@ -41,22 +41,22 @@ namespace ns3 { InternetNode::InternetNode() { - Ptr ipv4 = new Ipv4 (this); - Ptr arp = new Arp (this); - Ptr udp = new Udp (this); + Ptr ipv4 = MakeNewObject (this); + Ptr arp = MakeNewObject (this); + Ptr udp = MakeNewObject (this); - Ptr applicationList = new ApplicationList(this); - Ptr l3Demux = new L3Demux(this); - Ptr ipv4L4Demux = new Ipv4L4Demux(this); + Ptr applicationList = MakeNewObject (this); + Ptr l3Demux = MakeNewObject (this); + Ptr ipv4L4Demux = MakeNewObject (this); l3Demux->Insert (ipv4); l3Demux->Insert (arp); ipv4L4Demux->Insert (udp); - Ptr udpImpl = new IUdpImpl (udp); - Ptr arpPrivate = new IArpPrivate (arp); - Ptr ipv4Impl = new IIpv4Impl (ipv4); - Ptr ipv4Private = new IIpv4Private (ipv4); + Ptr udpImpl = MakeNewObject (udp); + Ptr arpPrivate = MakeNewObject (arp); + Ptr ipv4Impl = MakeNewObject (ipv4); + Ptr ipv4Private = MakeNewObject (ipv4); NsUnknown::AddInterface (ipv4Private); NsUnknown::AddInterface (ipv4Impl); diff --git a/src/internet-node/udp.cc b/src/internet-node/udp.cc index cc6eef871..8a0ffc55a 100644 --- a/src/internet-node/udp.cc +++ b/src/internet-node/udp.cc @@ -68,7 +68,7 @@ Udp::DoDispose (void) Ptr Udp::CreateSocket (void) { - Ptr socket = new UdpSocket (m_node, this); + Ptr socket = MakeNewObject (m_node, this); return socket; }