@@ -91,7 +91,15 @@ pub extern "C" fn ExecStatement(
9191 argc : :: std:: os:: raw:: c_int ,
9292) -> i32 {
9393 STATISTICS . exec_statement ( ) ;
94- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
94+
95+ let context = r:: rm:: Context :: new ( ctx) ;
96+ let argvector = match r:: create_argument ( argv, argc) {
97+ Ok ( argvector) => argvector,
98+ Err ( error) => {
99+ STATISTICS . exec_statement_err ( ) ;
100+ return error. reply ( & context) ;
101+ }
102+ } ;
95103
96104 match argvector. len ( ) {
97105 0 ...2 => {
@@ -166,7 +174,14 @@ pub extern "C" fn QueryStatement(
166174 argc : :: std:: os:: raw:: c_int ,
167175) -> i32 {
168176 STATISTICS . query_statement ( ) ;
169- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
177+ let context = r:: rm:: Context :: new ( ctx) ;
178+ let argvector = match r:: create_argument ( argv, argc) {
179+ Ok ( argvector) => argvector,
180+ Err ( error) => {
181+ STATISTICS . query_statement_err ( ) ;
182+ return error. reply ( & context) ;
183+ }
184+ } ;
170185
171186 match argvector. len ( ) {
172187 0 ...2 => {
@@ -233,7 +248,14 @@ pub extern "C" fn QueryStatementInto(
233248 argc : :: std:: os:: raw:: c_int ,
234249) -> i32 {
235250 STATISTICS . query_statement_into ( ) ;
236- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
251+ let context = r:: rm:: Context :: new ( ctx) ;
252+ let argvector = match r:: create_argument ( argv, argc) {
253+ Ok ( argvector) => argvector,
254+ Err ( error) => {
255+ STATISTICS . query_statement_into_err ( ) ;
256+ return error. reply ( & context) ;
257+ }
258+ } ;
237259
238260 match argvector. len ( ) {
239261 0 ...3 => {
@@ -307,7 +329,15 @@ pub extern "C" fn Exec(
307329 argc : :: std:: os:: raw:: c_int ,
308330) -> i32 {
309331 STATISTICS . exec ( ) ;
310- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
332+ let context = r:: rm:: Context :: new ( ctx) ;
333+ let argvector = match r:: create_argument ( argv, argc) {
334+ Ok ( argvector) => argvector,
335+ Err ( error) => {
336+ STATISTICS . exec_err ( ) ;
337+ return error. reply ( & context) ;
338+ }
339+ } ;
340+
311341 match argvector. len ( ) {
312342 3 => with_ch_and_loopdata (
313343 context. as_ptr ( ) ,
@@ -384,7 +414,15 @@ pub extern "C" fn Query(
384414 argc : :: std:: os:: raw:: c_int ,
385415) -> i32 {
386416 STATISTICS . query ( ) ;
387- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
417+ let context = r:: rm:: Context :: new ( ctx) ;
418+ let argvector = match r:: create_argument ( argv, argc) {
419+ Ok ( argvector) => argvector,
420+ Err ( error) => {
421+ STATISTICS . query_err ( ) ;
422+ return error. reply ( & context) ;
423+ }
424+ } ;
425+
388426 match argvector. len ( ) {
389427 3 => with_ch_and_loopdata (
390428 context. as_ptr ( ) ,
@@ -449,7 +487,15 @@ pub extern "C" fn QueryInto(
449487 argc : :: std:: os:: raw:: c_int ,
450488) -> i32 {
451489 STATISTICS . query_into ( ) ;
452- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
490+ let context = r:: rm:: Context :: new ( ctx) ;
491+ let argvector = match r:: create_argument ( argv, argc) {
492+ Ok ( argvector) => argvector,
493+ Err ( error) => {
494+ STATISTICS . query_into_err ( ) ;
495+ return error. reply ( & context) ;
496+ }
497+ } ;
498+
453499 match argvector. len ( ) {
454500 4 => {
455501 let stream_name = argvector[ 1 ] ;
@@ -521,7 +567,15 @@ pub extern "C" fn CreateStatement(
521567) -> i32 {
522568 STATISTICS . create_statement ( ) ;
523569
524- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
570+ let context = r:: rm:: Context :: new ( ctx) ;
571+ let argvector = match r:: create_argument ( argv, argc) {
572+ Ok ( argvector) => argvector,
573+ Err ( error) => {
574+ STATISTICS . create_statement_err ( ) ;
575+ return error. reply ( & context) ;
576+ }
577+ } ;
578+
525579 match argvector. len ( ) {
526580 4 => {
527581 with_ch_and_loopdata (
@@ -592,7 +646,15 @@ pub extern "C" fn UpdateStatement(
592646 argc : :: std:: os:: raw:: c_int ,
593647) -> i32 {
594648 STATISTICS . update_statement ( ) ;
595- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
649+ let context = r:: rm:: Context :: new ( ctx) ;
650+ let argvector = match r:: create_argument ( argv, argc) {
651+ Ok ( argvector) => argvector,
652+ Err ( error) => {
653+ STATISTICS . update_statement_err ( ) ;
654+ return error. reply ( & context) ;
655+ }
656+ } ;
657+
596658 match argvector. len ( ) {
597659 4 => {
598660 with_ch_and_loopdata (
@@ -665,7 +727,16 @@ pub extern "C" fn DeleteStatement(
665727 argc : :: std:: os:: raw:: c_int ,
666728) -> i32 {
667729 STATISTICS . delete_statement ( ) ;
668- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
730+
731+ let context = r:: rm:: Context :: new ( ctx) ;
732+ let argvector = match r:: create_argument ( argv, argc) {
733+ Ok ( argvector) => argvector,
734+ Err ( error) => {
735+ STATISTICS . delete_statement_err ( ) ;
736+ return error. reply ( & context) ;
737+ }
738+ } ;
739+
669740 match argvector. len ( ) {
670741 3 => with_ch_and_loopdata (
671742 context. as_ptr ( ) ,
@@ -737,7 +808,14 @@ pub extern "C" fn CreateDB(
737808 argc : :: std:: os:: raw:: c_int ,
738809) -> i32 {
739810 STATISTICS . create_db ( ) ;
740- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
811+ let context = r:: rm:: Context :: new ( ctx) ;
812+ let argvector = match r:: create_argument ( argv, argc) {
813+ Ok ( argvector) => argvector,
814+ Err ( error) => {
815+ STATISTICS . create_db_err ( ) ;
816+ return error. reply ( & context) ;
817+ }
818+ } ;
741819
742820 match argvector. len ( ) {
743821 2 | 3 => {
@@ -895,7 +973,14 @@ pub extern "C" fn MakeCopy(
895973) -> i32 {
896974 debug ! ( "MakeCopy | Start" ) ;
897975 STATISTICS . copy ( ) ;
898- let ( context, argvector) = r:: create_argument ( ctx, argv, argc) ;
976+ let context = r:: rm:: Context :: new ( ctx) ;
977+ let argvector = match r:: create_argument ( argv, argc) {
978+ Ok ( argvector) => argvector,
979+ Err ( error) => {
980+ STATISTICS . copy_err ( ) ;
981+ return error. reply ( & context) ;
982+ }
983+ } ;
899984
900985 match argvector. len ( ) {
901986 3 => with_ch_and_loopdata (
@@ -985,10 +1070,10 @@ pub extern "C" fn MakeCopy(
9851070#[ allow( non_snake_case) ]
9861071pub extern "C" fn GetStatistics (
9871072 ctx : * mut r:: rm:: ffi:: RedisModuleCtx ,
988- argv : * mut * mut r:: rm:: ffi:: RedisModuleString ,
989- argc : :: std:: os:: raw:: c_int ,
1073+ _argv : * mut * mut r:: rm:: ffi:: RedisModuleString ,
1074+ _argc : :: std:: os:: raw:: c_int ,
9901075) -> i32 {
991- let ( context, _argvector ) = r:: create_argument ( ctx, argv , argc ) ;
1076+ let context = r:: rm :: Context :: new ( ctx) ;
9921077 let data = STATISTICS . values ( ) . data ;
9931078
9941079 let len = data. len ( ) as c_long ;
0 commit comments