File tree Expand file tree Collapse file tree 1 file changed +21
-18
lines changed
taos-query/src/common/raw Expand file tree Collapse file tree 1 file changed +21
-18
lines changed Original file line number Diff line number Diff line change 1- use std:: borrow:: Cow ;
21use std:: ffi:: c_void;
32
4- use bytes:: Bytes ;
5-
63use crate :: util:: { Inlinable , InlinableRead } ;
74
85const RAW_PTR_OFFSET : usize = std:: mem:: size_of :: < u32 > ( ) + std:: mem:: size_of :: < u16 > ( ) ;
@@ -67,7 +64,7 @@ impl RawData {
6764 vec. extend_from_slice ( & self . raw_len ( ) . to_le_bytes ( ) ) ;
6865 vec. extend_from_slice ( & self . raw_type ( ) . to_le_bytes ( ) ) ;
6966 vec. extend_from_slice ( self . raw_slice ( ) ) ;
70- vec
67+ vec
7168 }
7269}
7370
@@ -93,20 +90,26 @@ impl Inlinable for RawData {
9390 let ptr = unsafe { std:: alloc:: alloc ( layout) } ;
9491 let buf = unsafe { std:: slice:: from_raw_parts_mut ( ptr, len as _ ) } ;
9592
96- reader. read_exact ( buf) . inspect_err ( |_| unsafe {
97- // free memory if read failed
98- std:: alloc:: dealloc ( ptr, layout) ;
99- } ) ?;
100-
101- let raw = raw_data_t {
102- raw : ptr as _ ,
103- raw_len : len,
104- raw_type : meta_type,
105- } ;
106-
107- let message = RawData :: new ( raw, _rust_free_raw) ;
108-
109- Ok ( message)
93+ match reader. read_exact ( buf) {
94+ Ok ( _) => {
95+ let raw = raw_data_t {
96+ raw : ptr as _ ,
97+ raw_len : len,
98+ raw_type : meta_type,
99+ } ;
100+
101+ let message = RawData :: new ( raw, _rust_free_raw) ;
102+
103+ Ok ( message)
104+ }
105+ Err ( e) => {
106+ unsafe {
107+ // free memory if read failed
108+ std:: alloc:: dealloc ( ptr, layout) ;
109+ }
110+ Err ( e)
111+ }
112+ }
110113 }
111114
112115 fn write_inlined < W : std:: io:: Write > ( & self , wtr : & mut W ) -> std:: io:: Result < usize > {
You can’t perform that action at this time.
0 commit comments