Skip to content

Commit

Permalink
small optimizations
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Jan 30, 2014
1 parent 3d8789b commit 9b840f9
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Changes
@@ -1,5 +1,5 @@

4.73 2014-01-30
4.73 2014-01-31
- Improved xml_escape performance significantly.
- Improved html_unescape and url_unescape performance.

Expand Down
4 changes: 2 additions & 2 deletions lib/Mojo/Content.pm
Expand Up @@ -240,7 +240,7 @@ sub _parse_chunked {
if ($self->{chunk_state} // '') eq 'trailing_headers';

# Check buffer size
$self->{limit} = $self->{state} = 'finished'
@$self{qw(state limit)} = ('finished', 1)
if length($self->{pre_buffer} // '') > $self->max_buffer_size;
}

Expand Down Expand Up @@ -301,7 +301,7 @@ sub _uncompress {
if $status == Z_STREAM_END;
# Check buffer size
$self->{limit} = $self->{state} = 'finished'
@$self{qw(state limit)} = ('finished', 1)
if length($self->{post_buffer} // '') > $self->max_buffer_size;
}

Expand Down
2 changes: 1 addition & 1 deletion lib/Mojo/Content/MultiPart.pm
Expand Up @@ -193,7 +193,7 @@ sub _read {
}

# Check buffer size
$self->{limit} = $self->{state} = 'finished'
@$self{qw(state limit)} = ('finished', 1)
if length($self->{multipart} // '') > $self->max_buffer_size;
}

Expand Down
5 changes: 2 additions & 3 deletions lib/Mojo/Headers.pm
Expand Up @@ -100,7 +100,7 @@ sub parse {

# Check line size limit
if (length $line > $max) {
$self->{limit} = $self->{state} = 'finished';
@$self{qw(state limit)} = ('finished', 1);
return $self;
}

Expand All @@ -119,8 +119,7 @@ sub parse {
}

# Check line size limit
$self->{limit} = $self->{state} = 'finished'
if length $self->{buffer} > $max;
@$self{qw(state limit)} = ('finished', 1) if length $self->{buffer} > $max;

return $self;
}
Expand Down
20 changes: 8 additions & 12 deletions lib/Mojo/Transaction/HTTP.pm
Expand Up @@ -73,7 +73,7 @@ sub _body {
my $buffer = $msg->get_body_chunk($self->{offset});
my $written = defined $buffer ? length $buffer : 0;
$self->{write} = $msg->content->is_dynamic ? 1 : ($self->{write} - $written);
$self->{offset} = $self->{offset} + $written;
$self->{offset} += $written;
if (defined $buffer) { delete $self->{delay} }

# Delayed
Expand All @@ -95,8 +95,8 @@ sub _headers {
# Prepare header chunk
my $buffer = $msg->get_header_chunk($self->{offset});
my $written = defined $buffer ? length $buffer : 0;
$self->{write} = $self->{write} - $written;
$self->{offset} = $self->{offset} + $written;
$self->{write} -= $written;
$self->{offset} += $written;

# Switch to body
if ($self->{write} <= 0) {
Expand All @@ -121,15 +121,12 @@ sub _start_line {
# Prepare start line chunk
my $buffer = $msg->get_start_line_chunk($self->{offset});
my $written = defined $buffer ? length $buffer : 0;
$self->{write} = $self->{write} - $written;
$self->{offset} = $self->{offset} + $written;
$self->{write} -= $written;
$self->{offset} += $written;

# Switch to headers
if ($self->{write} <= 0) {
$self->{http_state} = 'headers';
$self->{write} = $msg->header_size;
$self->{offset} = 0;
}
@$self{qw(http_state write offset)} = ('headers', $msg->header_size, 0)
if $self->{write} <= 0;

return $buffer;
}
Expand All @@ -152,8 +149,7 @@ sub _write {
unless $headers->connection;

# Switch to start line
$self->{http_state} = 'start_line';
$self->{write} = $msg->start_line_size;
@$self{qw(http_state write)} = ('start_line', $msg->start_line_size);
}

# Start line
Expand Down

0 comments on commit 9b840f9

Please sign in to comment.