From: Michal Privoznik <[email protected]>

Let's modify our gendispatch.pl script so that the code it
generates for the ACL checks uses g_autoptr instead of explicit
unref()-ing in each exit path.

Signed-off-by: Michal Privoznik <[email protected]>
---
 src/access/viraccessmanager.h | 2 +-
 src/rpc/gendispatch.pl        | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/access/viraccessmanager.h b/src/access/viraccessmanager.h
index 2050ac9b85..02661fe81b 100644
--- a/src/access/viraccessmanager.h
+++ b/src/access/viraccessmanager.h
@@ -38,7 +38,7 @@ void virAccessManagerSetDefault(virAccessManager *manager);
 
 virAccessManager *virAccessManagerNew(const char *name);
 virAccessManager *virAccessManagerNewStack(const char **names);
-
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virAccessManager, virObjectUnref);
 
 void *virAccessManagerGetPrivateData(virAccessManager *manager);
 
diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl
index 8cb7d7eda2..4d385927aa 100755
--- a/src/rpc/gendispatch.pl
+++ b/src/rpc/gendispatch.pl
@@ -2165,7 +2165,7 @@ elsif ($mode eq "client") {
                 print "/* Returns: $fail on error/denied, $pass on allowed 
*/\n";
                 print "$ret $apiname(" . join(", ", @argdecls) . ")\n";
                 print "{\n";
-                print "    virAccessManager *mgr;\n";
+                print "    g_autoptr(virAccessManager) mgr = NULL;\n";
                 print "    int rv;\n";
                 print "\n";
                 print "    if (!(mgr = virAccessManagerGetDefault())) {\n";
@@ -2205,7 +2205,6 @@ elsif ($mode eq "client") {
                         print "        ";
                     }
                     print "(rv = $method(" . join(", ", @argvars, $perm) . ")) 
<= 0) {\n";
-                    print "        virObjectUnref(mgr);\n";
                     if ($action eq "Ensure") {
                         print "        if (rv == 0)\n";
                         print "            
virReportError(VIR_ERR_ACCESS_DENIED,\n";
@@ -2219,7 +2218,6 @@ elsif ($mode eq "client") {
                     print "\n";
                 }
 
-                print "    virObjectUnref(mgr);\n";
                 print "    return $pass;\n";
                 print "}\n\n";
             }
-- 
2.53.0

Reply via email to