From 1e986d449cce0844fc03fa5337bea17bd931eb06 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Mon, 1 Oct 2018 19:36:14 -0700 Subject: [PATCH] mobility: Allow AssignStreams after construction for SteadyStateRwpMobility The SteadyStateRandomWaypointMobilityModel should support AssignStreams() after object construction, but prior to this patch, it would cause a segmentation fault until after initialization. The initial benefit is the prevention of test suite failures due to random stream assignment. --- .../model/steady-state-random-waypoint-mobility-model.cc | 2 +- .../test/steady-state-random-waypoint-mobility-model-test.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mobility/model/steady-state-random-waypoint-mobility-model.cc b/src/mobility/model/steady-state-random-waypoint-mobility-model.cc index e73d5a253..f26be3689 100644 --- a/src/mobility/model/steady-state-random-waypoint-mobility-model.cc +++ b/src/mobility/model/steady-state-random-waypoint-mobility-model.cc @@ -95,6 +95,7 @@ SteadyStateRandomWaypointMobilityModel::SteadyStateRandomWaypointMobilityModel ( m_u_r = CreateObject (); m_x = CreateObject (); m_y = CreateObject (); + m_position = CreateObject (); } void @@ -115,7 +116,6 @@ SteadyStateRandomWaypointMobilityModel::DoInitializePrivate (void) m_speed->SetAttribute ("Max", DoubleValue (m_maxSpeed)); NS_ASSERT (m_minX < m_maxX); NS_ASSERT (m_minY < m_maxY); - m_position = CreateObject (); m_x->SetAttribute ("Min", DoubleValue (m_minX)); m_x->SetAttribute ("Max", DoubleValue (m_maxX)); m_y->SetAttribute ("Min", DoubleValue (m_minY)); diff --git a/src/mobility/test/steady-state-random-waypoint-mobility-model-test.cc b/src/mobility/test/steady-state-random-waypoint-mobility-model-test.cc index 073b5c31a..cb52b1434 100644 --- a/src/mobility/test/steady-state-random-waypoint-mobility-model-test.cc +++ b/src/mobility/test/steady-state-random-waypoint-mobility-model-test.cc @@ -82,7 +82,7 @@ SteadyStateRandomWaypointTest::DoRun (void) { // Create a new mobility model. Ptr model = mobilityFactory.Create ()->GetObject (); - + model->AssignStreams (100 * (i + 1)); // Add this mobility model to the stack. mobilityStack.push_back (model); Simulator::Schedule (Seconds (0.0), &Object::Initialize, model);