@@ -147,7 +147,6 @@ void ReaderProxy::start(
147147 {
148148 initial_heartbeat_event_->restart_timer ();
149149 }
150- std::cout << " frist_irrelevant_removed_: " << first_irrelevant_removed_ << std::endl;
151150
152151 EPROSIMA_LOG_INFO (RTPS_READER_PROXY, " Reader Proxy started" );
153152}
@@ -178,6 +177,9 @@ void ReaderProxy::stop()
178177 next_expected_acknack_count_ = 0 ;
179178 last_nackfrag_count_ = 0 ;
180179 changes_low_mark_ = SequenceNumber_t ();
180+
181+ first_irrelevant_removed_ = SequenceNumber_t::unknown ();
182+ last_irrelevant_removed_ = SequenceNumber_t::unknown ();
181183}
182184
183185void ReaderProxy::disable_timers ()
@@ -248,7 +250,6 @@ void ReaderProxy::add_change(
248250 {
249251 first_irrelevant_removed_ = seq_num;
250252 last_irrelevant_removed_ = seq_num;
251- std::cout << " set first_irrelevant_removed_ to " << first_irrelevant_removed_ << std::endl;
252253 }
253254 else if (seq_num == last_irrelevant_removed_ + 1 )
254255 {
@@ -354,14 +355,17 @@ bool ReaderProxy::change_is_unsent(
354355 SequenceNumber_t::unknown () != gap_seq)
355356 {
356357 // Check if the hole is due to irrelevant changes removed without informing the reader
357- if (gap_seq == first_irrelevant_removed_)
358- {
359- first_irrelevant_removed_ = SequenceNumber_t::unknown ();
360- last_irrelevant_removed_ = SequenceNumber_t::unknown ();
361- }
362- else if (gap_seq < last_irrelevant_removed_)
358+ if (first_irrelevant_removed_ <= gap_seq )
363359 {
364- last_irrelevant_removed_ = gap_seq - 1 ;
360+ if (gap_seq == first_irrelevant_removed_)
361+ {
362+ first_irrelevant_removed_ = SequenceNumber_t::unknown ();
363+ last_irrelevant_removed_ = SequenceNumber_t::unknown ();
364+ }
365+ else if (gap_seq < last_irrelevant_removed_)
366+ {
367+ last_irrelevant_removed_ = gap_seq - 1 ;
368+ }
365369 }
366370 }
367371 }
@@ -483,14 +487,17 @@ bool ReaderProxy::requested_changes_set(
483487 if (SequenceNumber_t::unknown () != first_irrelevant_removed_)
484488 {
485489 // Check if the hole is due to irrelevant changes removed without informing the reader
486- if (sit == first_irrelevant_removed_)
487- {
488- first_irrelevant_removed_ = SequenceNumber_t::unknown ();
489- last_irrelevant_removed_ = SequenceNumber_t::unknown ();
490- }
491- else if (sit < last_irrelevant_removed_)
490+ if (first_irrelevant_removed_ <= sit )
492491 {
493- last_irrelevant_removed_ = sit - 1 ;
492+ if (sit == first_irrelevant_removed_)
493+ {
494+ first_irrelevant_removed_ = SequenceNumber_t::unknown ();
495+ last_irrelevant_removed_ = SequenceNumber_t::unknown ();
496+ }
497+ else if (sit < last_irrelevant_removed_)
498+ {
499+ last_irrelevant_removed_ = sit - 1 ;
500+ }
494501 }
495502 }
496503 }
0 commit comments