X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FRingBuf.pm;h=b55c19aae908c7a74c5fdea3339bfac97557f7a2;hb=d30f018b751cb8d51a5599ac977ecb2e54c32099;hp=e9b1052a92f8e42566b02b91aa608c6cd69c7116;hpb=ee3201c65017b91e2e42e8792b4db7c9c1122ae5;p=spider.git diff --git a/perl/RingBuf.pm b/perl/RingBuf.pm index e9b1052a..b55c19aa 100644 --- a/perl/RingBuf.pm +++ b/perl/RingBuf.pm @@ -28,7 +28,7 @@ sub new # 3 - start # 4 - pos # 5 - buffer [] - return bless [$size, 0, 0, 0, 0, []], (ref $pkg || $pkg); + return bless [$size+1, 0, 0, 0, 0, []], (ref $pkg || $pkg); } sub write @@ -37,10 +37,7 @@ sub write $self->[5]->[$self->[2]++] = shift; $self->[2] = 0 if $self->[2] >= $self->[0]; - if ($self->[1] < $self->[0]) { - $self->[1] = ++$self->[1]; - } - $self->[2] = $self->[2]; + $self->[1]++ if $self->[1] < $self->[0]; if ($self->[1] == $self->[0] && $self->[2] == $self->[3]) { $self->[3] = $self->[2]+1; $self->[3] = 0 if $self->[3] >= $self->[0];