projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
upissue version
[spider.git]
/
perl
/
RingBuf.pm
diff --git
a/perl/RingBuf.pm
b/perl/RingBuf.pm
index 82b534e41d2081887c4cee814cade8dee0a4286a..ae36dab715123d4917dc5ec59f54486dd07f5e4b 100644
(file)
--- a/
perl/RingBuf.pm
+++ b/
perl/RingBuf.pm
@@
-10,18
+10,19
@@
use strict;
package RingBuf;
package RingBuf;
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
-
sub new
{
my $pkg = shift;
my $size = shift;
sub new
{
my $pkg = shift;
my $size = shift;
- return bless [$size, 0, 0, 0, 0, []], (ref $pkg || $pkg);
+
+ # 0 - size
+ # 1 - lth
+ # 2 - end
+ # 3 - start
+ # 4 - pos
+ # 5 - buffer []
+ return bless [$size+1, 0, 0, 0, 0, []], (ref $pkg || $pkg);
}
sub write
}
sub write
@@
-30,10
+31,7
@@
sub write
$self->[5]->[$self->[2]++] = shift;
$self->[2] = 0 if $self->[2] >= $self->[0];
$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];
if ($self->[1] == $self->[0] && $self->[2] == $self->[3]) {
$self->[3] = $self->[2]+1;
$self->[3] = 0 if $self->[3] >= $self->[0];