On 9/9/24 12:17 AM, Andrew.Yuan wrote:
The code 'ops = ACCEL_OPS_CLASS(module_object_class_by_name(ops_name));' is 
unnecessary;

And, the following code :
1.has the same functionality;
2.includes error checking;

Signed-off-by: Andrew.Yuan <andrew.y...@jaguarmicro.com>
---
  accel/accel-system.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/accel/accel-system.c b/accel/accel-system.c
index f6c947dd82..5d502c8fd8 100644
--- a/accel/accel-system.c
+++ b/accel/accel-system.c
@@ -73,7 +73,7 @@ void accel_system_init_ops_interfaces(AccelClass *ac)
      g_assert(ac_name != NULL);
ops_name = g_strdup_printf("%s" ACCEL_OPS_SUFFIX, ac_name);
-    ops = ACCEL_OPS_CLASS(module_object_class_by_name(ops_name));
+

The code you're changing was added by 5141e9a23f ("accel: abort if we fail to
load the accelerator plugin") and I think this repetition is intended. If I have
to guess (first time looking at this code), ACCEL_OPS_CLASS() is creating the 
class
type QOM functions that the the second module_object_class_by_name() relies on 
to
catch the module load error the commit is trying to address.

I'm CCing Claudio to get a better idea of the intention here. At the very least 
we
should add a code comment explaining the reasoning behind initing 'ops' two 
times
in a row and so on.


Thanks,

Daniel

      oc = module_object_class_by_name(ops_name);
      if (!oc) {
          error_report("fatal: could not load module for type '%s'", ops_name);

Reply via email to