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.110 by root, Wed Jan 21 05:36:45 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;
1182 $json->incr_text = "";
1183 $cb->($self, $ref);
1184
1185 1
1186 } else {
1187 $self->{rbuf} = "";
1188 ()
1189 }
1190
1191 1
1192 } or do {
1193 $json->incr_skip;
1194
1195 $self->{rbuf} = $json->incr_text; 1180 $self->{rbuf} = $json->incr_text;
1196 $json->incr_text = ""; 1181 $json->incr_text = "";
1182 $cb->($self, $ref);
1183
1184 1
1185 } elsif ($@) {
1186 # error case
1187 $json->incr_skip;
1188
1189 $self->{rbuf} = $json->incr_text;
1190 $json->incr_text = "";
1197 1191
1198 $self->_error (&Errno::EBADMSG); 1192 $self->_error (&Errno::EBADMSG);
1193 ()
1194
1195 } else {
1196 $self->{rbuf} = "";
1197 ()
1199 }; 1198 }
1200
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