From 7cc65ca1a2038f4c0d7c2ece139403a99b23aa62 Mon Sep 17 00:00:00 2001 From: Andrey Savchenko Date: Thu, 22 Feb 2018 18:01:46 +0200 Subject: [PATCH] Fixed stacking of events that are just very close to each other. --- src/Record/Recursive_Record_Iterator.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Record/Recursive_Record_Iterator.php b/src/Record/Recursive_Record_Iterator.php index f30640b..3edca48 100644 --- a/src/Record/Recursive_Record_Iterator.php +++ b/src/Record/Recursive_Record_Iterator.php @@ -21,13 +21,17 @@ class Recursive_Record_Iterator extends \ArrayIterator implements \RecursiveIter foreach ( $records as $key => $record ) { - if ( $record->get_origin() < $end ) { + $origin = $record->get_origin(); + $overlaps = $origin < $end; // Float comparison alarm. + $borders = abs( $origin - $end ) < 0.0001; // If effectively equal. + + if ( $overlaps && ! $borders ) { unset( $records[ $key ] ); $this->children[] = $record; continue; } - $end = $record->get_origin() + $record->get_duration(); + $end = $origin + $record->get_duration(); } parent::__construct( $records, $flags );