@@ -330,11 +330,15 @@ mod cache {
330330
331331 let cache_key = unsafe { slice:: from_raw_parts ( main_ptr ! ( cache_key_ptr) , cache_key_len) } ;
332332
333- let request_headers = match unsafe { ( * options) . request_headers } {
334- INVALID_HANDLE => None ,
335- request_headers => Some ( ManuallyDrop :: new ( unsafe {
336- http_req:: Request :: from_handle ( request_headers)
337- } ) ) ,
333+ let request_headers = if options_mask. contains ( CacheWriteOptionsMask :: REQUEST_HEADERS ) {
334+ match unsafe { ( * options) . request_headers } {
335+ INVALID_HANDLE => None ,
336+ request_headers => Some ( ManuallyDrop :: new ( unsafe {
337+ http_req:: Request :: from_handle ( request_headers)
338+ } ) ) ,
339+ }
340+ } else {
341+ None
338342 } ;
339343 let mut options =
340344 match unsafe { write_options ( options_mask, options, request_headers. as_ref ( ) ) } {
@@ -551,11 +555,15 @@ mod cache {
551555 }
552556
553557 let handle = ManuallyDrop :: new ( unsafe { cache:: Entry :: from_handle ( handle) } ) ;
554- let request_headers = match unsafe { ( * options) . request_headers } {
555- INVALID_HANDLE => None ,
556- request_headers => Some ( ManuallyDrop :: new ( unsafe {
557- http_req:: Request :: from_handle ( request_headers)
558- } ) ) ,
558+ let request_headers = if options_mask. contains ( CacheWriteOptionsMask :: REQUEST_HEADERS ) {
559+ match unsafe { ( * options) . request_headers } {
560+ INVALID_HANDLE => None ,
561+ request_headers => Some ( ManuallyDrop :: new ( unsafe {
562+ http_req:: Request :: from_handle ( request_headers)
563+ } ) ) ,
564+ }
565+ } else {
566+ None
559567 } ;
560568 let mut options =
561569 match unsafe { write_options ( options_mask, options, request_headers. as_ref ( ) ) } {
@@ -610,11 +618,15 @@ mod cache {
610618 }
611619
612620 let handle = ManuallyDrop :: new ( unsafe { cache:: Entry :: from_handle ( handle) } ) ;
613- let request_headers = match unsafe { ( * options) . request_headers } {
614- INVALID_HANDLE => None ,
615- request_headers => Some ( ManuallyDrop :: new ( unsafe {
616- http_req:: Request :: from_handle ( request_headers)
617- } ) ) ,
621+ let request_headers = if options_mask. contains ( CacheWriteOptionsMask :: REQUEST_HEADERS ) {
622+ match unsafe { ( * options) . request_headers } {
623+ INVALID_HANDLE => None ,
624+ request_headers => Some ( ManuallyDrop :: new ( unsafe {
625+ http_req:: Request :: from_handle ( request_headers)
626+ } ) ) ,
627+ }
628+ } else {
629+ None
618630 } ;
619631 let mut options =
620632 match unsafe { write_options ( options_mask, options, request_headers. as_ref ( ) ) } {
@@ -668,11 +680,15 @@ mod cache {
668680 }
669681
670682 let handle = ManuallyDrop :: new ( unsafe { cache:: Entry :: from_handle ( handle) } ) ;
671- let request_headers = match unsafe { ( * options) . request_headers } {
672- INVALID_HANDLE => None ,
673- request_headers => Some ( ManuallyDrop :: new ( unsafe {
674- http_req:: Request :: from_handle ( request_headers)
675- } ) ) ,
683+ let request_headers = if options_mask. contains ( CacheWriteOptionsMask :: REQUEST_HEADERS ) {
684+ match unsafe { ( * options) . request_headers } {
685+ INVALID_HANDLE => None ,
686+ request_headers => Some ( ManuallyDrop :: new ( unsafe {
687+ http_req:: Request :: from_handle ( request_headers)
688+ } ) ) ,
689+ }
690+ } else {
691+ None
676692 } ;
677693 let mut options =
678694 match unsafe { write_options ( options_mask, options, request_headers. as_ref ( ) ) } {
@@ -950,11 +966,15 @@ mod cache {
950966 } else {
951967 None
952968 } ;
953- let request_headers = match unsafe { ( * options) . request_headers } {
954- INVALID_HANDLE => None ,
955- request_headers => Some ( ManuallyDrop :: new ( unsafe {
956- http_req:: Request :: from_handle ( request_headers)
957- } ) ) ,
969+ let request_headers = if options_mask. contains ( CacheReplaceOptionsMask :: REQUEST_HEADERS ) {
970+ match unsafe { ( * options) . request_headers } {
971+ INVALID_HANDLE => None ,
972+ request_headers => Some ( ManuallyDrop :: new ( unsafe {
973+ http_req:: Request :: from_handle ( request_headers)
974+ } ) ) ,
975+ }
976+ } else {
977+ None
958978 } ;
959979 let options = cache:: ReplaceOptions {
960980 request_headers : request_headers. as_deref ( ) ,
@@ -1005,11 +1025,15 @@ mod cache {
10051025
10061026 let replace_handle = decode_replace_entry ( handle) ;
10071027 let replace_handle = unsafe { cache:: ReplaceEntry :: from_handle ( replace_handle) } ;
1008- let request_headers = match unsafe { ( * options) . request_headers } {
1009- INVALID_HANDLE => None ,
1010- request_headers => Some ( ManuallyDrop :: new ( unsafe {
1011- http_req:: Request :: from_handle ( request_headers)
1012- } ) ) ,
1028+ let request_headers = if options_mask. contains ( CacheWriteOptionsMask :: REQUEST_HEADERS ) {
1029+ match unsafe { ( * options) . request_headers } {
1030+ INVALID_HANDLE => None ,
1031+ request_headers => Some ( ManuallyDrop :: new ( unsafe {
1032+ http_req:: Request :: from_handle ( request_headers)
1033+ } ) ) ,
1034+ }
1035+ } else {
1036+ None
10131037 } ;
10141038 let mut options =
10151039 match unsafe { write_options ( options_mask, options, request_headers. as_ref ( ) ) } {
0 commit comments