File tree Expand file tree Collapse file tree 3 files changed +4
-28
lines changed Expand file tree Collapse file tree 3 files changed +4
-28
lines changed Original file line number Diff line number Diff line change @@ -124,7 +124,7 @@ SEXP rawToChar(unsigned char *buf, const size_t sz) {
124124void nano_serialize (nano_buf * buf , SEXP object ) {
125125
126126 NANO_ALLOC (buf , NANONEXT_INIT_BUFSIZE );
127- buf -> buf [ buf -> cur ++ ] = 7u ;
127+
128128 struct R_outpstream_st output_stream ;
129129
130130 R_InitOutPStream (
@@ -168,34 +168,11 @@ void nano_serialize_xdr(nano_buf *buf, SEXP object) {
168168
169169SEXP nano_unserialize (unsigned char * buf , const size_t sz ) {
170170
171- nano_buf nbuf ;
172- struct R_inpstream_st input_stream ;
173-
174- if (buf [0 ] != 7u ) {
171+ if (buf [0 ] != 66u && buf [0 ] != 88u ) {
175172 Rf_warning ("received data could not be unserialized" );
176173 return nano_decode (buf , sz , 8 );
177174 }
178175
179- nbuf .buf = buf + 1 ;
180- nbuf .len = sz - 1 ;
181- nbuf .cur = 0 ;
182-
183- R_InitInPStream (
184- & input_stream ,
185- (R_pstream_data_t ) & nbuf ,
186- R_pstream_any_format ,
187- nano_read_char ,
188- nano_read_bytes ,
189- NULL ,
190- R_NilValue
191- );
192-
193- return R_Unserialize (& input_stream );
194-
195- }
196-
197- SEXP nano_unserialize_xdr (unsigned char * buf , const size_t sz ) {
198-
199176 nano_buf nbuf ;
200177 struct R_inpstream_st input_stream ;
201178
@@ -206,7 +183,7 @@ SEXP nano_unserialize_xdr(unsigned char *buf, const size_t sz) {
206183 R_InitInPStream (
207184 & input_stream ,
208185 (R_pstream_data_t ) & nbuf ,
209- R_pstream_xdr_format ,
186+ R_pstream_any_format ,
210187 nano_read_char ,
211188 nano_read_bytes ,
212189 NULL ,
Original file line number Diff line number Diff line change @@ -181,7 +181,6 @@ extern int nano_matchargs(SEXP);
181181extern void nano_serialize (nano_buf * , SEXP );
182182extern void nano_serialize_xdr (nano_buf * , SEXP );
183183extern SEXP nano_unserialize (unsigned char * , const size_t );
184- extern SEXP nano_unserialize_xdr (unsigned char * , const size_t );
185184extern SEXP rawToChar (unsigned char * , const size_t );
186185extern void socket_finalizer (SEXP );
187186
Original file line number Diff line number Diff line change @@ -353,7 +353,7 @@ SEXP rnng_base64dec(SEXP x, SEXP convert) {
353353 out = rawToChar (buf , olen );
354354 break ;
355355 default :
356- out = nano_unserialize_xdr (buf , olen );
356+ out = nano_unserialize (buf , olen );
357357 }
358358
359359 R_Free (buf );
You can’t perform that action at this time.
0 commit comments