@@ -172,7 +172,7 @@ int ParseDAGExecuteOps(RedisAI_RunInfo *rinfo, RAI_DagOp **ops, bool ro) {
172
172
currentOp -> inkeys = array_append (currentOp -> inkeys , currentOp -> argv [1 ]);
173
173
currentOp -> fmt = ParseTensorGetArgs (rinfo -> err , currentOp -> argv , currentOp -> argc );
174
174
if (currentOp -> fmt == TENSOR_NONE ) {
175
- goto cleanup ;
175
+ return REDISMODULE_ERR ;
176
176
}
177
177
continue ;
178
178
}
@@ -183,14 +183,14 @@ int ParseDAGExecuteOps(RedisAI_RunInfo *rinfo, RAI_DagOp **ops, bool ro) {
183
183
currentOp -> outkeys = array_append (currentOp -> outkeys , currentOp -> argv [1 ]);
184
184
if (RAI_parseTensorSetArgs (currentOp -> argv , currentOp -> argc , & currentOp -> outTensor , 0 ,
185
185
rinfo -> err ) == -1 ) {
186
- goto cleanup ;
186
+ return REDISMODULE_ERR ;
187
187
}
188
188
continue ;
189
189
}
190
190
if (!strcasecmp (arg_string , "AI.MODELEXECUTE" )) {
191
191
if (ParseModelExecuteCommand (rinfo , currentOp , currentOp -> argv , currentOp -> argc ) !=
192
192
REDISMODULE_OK ) {
193
- goto cleanup ;
193
+ return REDISMODULE_ERR ;
194
194
}
195
195
continue ;
196
196
}
@@ -199,29 +199,29 @@ int ParseDAGExecuteOps(RedisAI_RunInfo *rinfo, RAI_DagOp **ops, bool ro) {
199
199
// Scripts can contain call to Redis commands (that may write to Redis)
200
200
RAI_SetError (rinfo -> err , RAI_EDAGBUILDER ,
201
201
"ERR AI.SCRIPTEXECUTE command cannot be specified in a read-only DAG" );
202
- goto cleanup ;
202
+ return REDISMODULE_ERR ;
203
203
}
204
204
if (ParseScriptExecuteCommand (rinfo , currentOp , currentOp -> argv , currentOp -> argc ) !=
205
205
REDISMODULE_OK ) {
206
- goto cleanup ;
206
+ return REDISMODULE_ERR ;
207
207
}
208
208
continue ;
209
209
}
210
210
if (!strcasecmp (arg_string , "AI.MODELRUN" )) {
211
211
RAI_SetError (rinfo -> err , RAI_EDAGBUILDER ,
212
212
"Deprecated AI.MODELRUN"
213
213
" cannot be used in AI.DAGEXECUTE command" );
214
- goto cleanup ;
214
+ return REDISMODULE_ERR ;
215
215
}
216
216
if (!strcasecmp (arg_string , "AI.SCRIPTRUN" )) {
217
217
RAI_SetError (rinfo -> err , RAI_EDAGBUILDER ,
218
218
"Deprecated AI.SCRIPTRUN"
219
219
" cannot be used in AI.DAGEXECUTE command" );
220
- goto cleanup ;
220
+ return REDISMODULE_ERR ;
221
221
}
222
222
// If none of the cases match, we have an invalid op.
223
223
RAI_SetError (rinfo -> err , RAI_EDAGBUILDER , "Unsupported command within DAG" );
224
- goto cleanup ;
224
+ return REDISMODULE_ERR ;
225
225
}
226
226
227
227
// After validating all the ops, insert them to the DAG.
@@ -230,12 +230,6 @@ int ParseDAGExecuteOps(RedisAI_RunInfo *rinfo, RAI_DagOp **ops, bool ro) {
230
230
}
231
231
rinfo -> dagOpCount = array_len (rinfo -> dagOps );
232
232
return REDISMODULE_OK ;
233
-
234
- cleanup :
235
- for (size_t i = 0 ; i < array_len (ops ); i ++ ) {
236
- RAI_FreeDagOp (ops [i ]);
237
- }
238
- return REDISMODULE_ERR ;
239
233
}
240
234
241
235
int DAGInitialParsing (RedisAI_RunInfo * rinfo , RedisModuleCtx * ctx , RedisModuleString * * argv ,
@@ -335,7 +329,6 @@ int DAGInitialParsing(RedisAI_RunInfo *rinfo, RedisModuleCtx *ctx, RedisModuleSt
335
329
int ParseDAGExecuteCommand (RedisAI_RunInfo * rinfo , RedisModuleCtx * ctx , RedisModuleString * * argv ,
336
330
int argc , bool dag_ro ) {
337
331
338
- int res = REDISMODULE_ERR ;
339
332
// The minimal command is of the form: AI.DAGEXECUTE(_RO) KEYS/LOAD/PERSIST 1 <key> |>
340
333
// AI.TENSORGET <key>
341
334
if (argc < 7 ) {
@@ -346,7 +339,7 @@ int ParseDAGExecuteCommand(RedisAI_RunInfo *rinfo, RedisModuleCtx *ctx, RedisMod
346
339
RAI_SetError (rinfo -> err , RAI_EDAGBUILDER ,
347
340
"ERR missing arguments for 'AI.DAGEXECUTE' command" );
348
341
}
349
- return res ;
342
+ return REDISMODULE_ERR ;
350
343
}
351
344
352
345
// First we parse KEYS, LOAD, PERSIST and TIMEOUT parts, and we collect the DAG ops' args.
@@ -368,9 +361,13 @@ int ParseDAGExecuteCommand(RedisAI_RunInfo *rinfo, RedisModuleCtx *ctx, RedisMod
368
361
}
369
362
AI_dictRelease (rinfo -> tensorsNamesToIndices );
370
363
rinfo -> tensorsNamesToIndices = NULL ;
371
- res = REDISMODULE_OK ;
364
+ array_free (dag_ops );
365
+ return REDISMODULE_OK ;
372
366
373
367
cleanup :
368
+ for (size_t i = 0 ; i < array_len (dag_ops ); i ++ ) {
369
+ RAI_FreeDagOp (dag_ops [i ]);
370
+ }
374
371
array_free (dag_ops );
375
- return res ;
372
+ return REDISMODULE_ERR ;
376
373
}
0 commit comments