ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent/Handle.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent/Handle.pm (file contents):
Revision 1.112 by root, Wed Jan 21 06:01:35 2009 UTC vs.
Revision 1.114 by root, Wed Jan 21 06:06:22 2009 UTC

1172 my $rbuf = \$self->{rbuf}; 1172 my $rbuf = \$self->{rbuf};
1173 1173
1174 my $json = $self->{json} ||= JSON->new->utf8; 1174 my $json = $self->{json} ||= JSON->new->utf8;
1175 1175
1176 sub { 1176 sub {
1177 eval {
1178 my $ref = $json->incr_parse ($self->{rbuf}); 1177 my $ref = eval { $json->incr_parse ($self->{rbuf}) };
1179 1178
1180 if ($ref) { 1179 if ($ref) {
1181 $self->{rbuf} = $json->incr_text; 1180 $self->{rbuf} = $json->incr_text;
1182 $json->incr_text = ""; 1181 $json->incr_text = "";
1183 $cb->($self, $ref); 1182 $cb->($self, $ref);
1184
1185 1
1186 } else {
1187 $self->{rbuf} = "";
1188 ()
1189 }
1190 1183
1191 1 1184 1
1192 } or do { 1185 } elsif ($@) {
1193 # error case 1186 # error case
1194 $json->incr_skip; 1187 $json->incr_skip;
1195 1188
1196 $self->{rbuf} = $json->incr_text; 1189 $self->{rbuf} = $json->incr_text;
1197 $json->incr_text = ""; 1190 $json->incr_text = "";
1198 1191
1199 $self->_error (&Errno::EBADMSG); 1192 $self->_error (&Errno::EBADMSG);
1193
1194 ()
1195 } else {
1196 $self->{rbuf} = "";
1197
1198 ()
1200 }; 1199 }
1201 } 1200 }
1202}; 1201};
1203 1202
1204=item storable => $cb->($handle, $ref) 1203=item storable => $cb->($handle, $ref)
1205 1204

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines