@@ -174,39 +174,34 @@ class_instance<C$DeflateContext> f$deflate_init(int64_t encoding, const array<mi
174174 const auto & val{it.get_value ()};
175175
176176 if (key_view == " level" sv) {
177- if (val.is_int () && val.as_int () >= kphp::zlib::MIN_COMPRESSION_LEVEL && val.as_int () <= kphp::zlib::MAX_COMPRESSION_LEVEL) {
178- level = val.as_int ();
179- } else {
177+ if (!val.is_int () || val.as_int () < kphp::zlib::MIN_COMPRESSION_LEVEL || val.as_int () > kphp::zlib::MAX_COMPRESSION_LEVEL) {
180178 kphp::log::warning (" option level should be a number between -1..9" );
181179 return {};
182180 }
181+ level = val.as_int ();
183182 } else if (key_view == " memory" sv) {
184- if (val.is_int () && val.as_int () >= kphp::zlib::MIN_MEMORY_LEVEL && val.as_int () <= kphp::zlib::MAX_MEMORY_LEVEL) {
185- memory = val.as_int ();
186- } else {
183+ if (!val.is_int () || val.as_int () < kphp::zlib::MIN_MEMORY_LEVEL || val.as_int () > kphp::zlib::MAX_MEMORY_LEVEL) {
187184 kphp::log::warning (" option memory should be a number between 1..9" );
188185 return {};
189186 }
187+ memory = val.as_int ();
190188 } else if (key_view == " window" sv) {
191- if (val.is_int () && val.as_int () >= kphp::zlib::MIN_WINDOW_SIZE && val.as_int () <= kphp::zlib::MAX_WINDOW_SIZE) {
192- window = val.as_int ();
193- } else {
189+ if (!val.is_int () || val.as_int () < kphp::zlib::MIN_WINDOW_SIZE || val.as_int () > kphp::zlib::MAX_WINDOW_SIZE) {
194190 kphp::log::warning (" option window should be a number between 8..15" );
195191 return {};
196192 }
193+ window = val.as_int ();
197194 } else if (key_view == " strategy" sv) {
198- if (val.is_int ()) {
199- const auto s{val.as_int ()};
200- if (s == Z_DEFAULT_STRATEGY || s == Z_FILTERED || s == Z_HUFFMAN_ONLY || s == Z_RLE || s == Z_FIXED) {
201- strategy = s;
202- } else {
203- kphp::log::warning (" option strategy should be one of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY" );
204- return {};
205- }
206- } else {
195+ if (!val.is_int ()) {
207196 kphp::log::warning (" option strategy should be one of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY" );
208197 return {};
209198 }
199+ const auto s{val.as_int ()};
200+ if (s != Z_DEFAULT_STRATEGY && s != Z_FILTERED && s != Z_HUFFMAN_ONLY && s != Z_RLE && s != Z_FIXED) {
201+ kphp::log::warning (" option strategy should be one of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY" );
202+ return {};
203+ }
204+ strategy = s;
210205 } else if (key_view == " dictionary" sv) {
211206 kphp::log::warning (" option dictionary isn't supported yet" );
212207 return {};
0 commit comments