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.113 by root, Wed Jan 21 06:02:21 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 ()
1200 }; 1198 }
1201 } 1199 }
1202}; 1200};
1203 1201
1204=item storable => $cb->($handle, $ref) 1202=item storable => $cb->($handle, $ref)
1205 1203

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines