~cjdahlin/libnih/async

« back to all changes in this revision

Viewing changes to nih/nih_dbus_tool.py

  • Committer: Casey Dahlin
  • Date: 2009-01-31 04:32:49 UTC
  • Revision ID: cdahlin@redhat.com-20090131043249-e9cpnkcx87d504qh
* nih/nih_dbus_tool.py (Method.asyncNotifyFunction): Properly handle ENOMEM, and
remember to unref things on return.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1362
1362
 
1363
1363
        mem_error = indent("""\
1364
1364
dbus_message_unref (reply);
1365
 
nih_error_raise (ENOMEM, strerror (ENOMEM));
1366
 
return;
1367
 
""", 1)
 
1365
errno = ENOMEM;
 
1366
nih_error_raise_system ();
 
1367
((NihDBusErrback_%s)data->err_handler)(data->proxy, data->userdata);
 
1368
goto out;
 
1369
""" % self.extern_name, 1)
1368
1370
        type_error = indent("""\
1369
1371
nih_error_raise (NIH_DBUS_INVALID_ARGS, NIH_DBUS_INVALID_ARGS_STR);
1370
1372
((NihDBusErrback_%s)data->err_handler)(data->proxy, data->userdata);
1371
 
return;
 
1373
goto out;
1372
1374
""" % self.extern_name, 1);
1373
1375
        code += indent(out_args.marshal("iter", "data->proxy",
1374
1376
                                        type_error, mem_error), 1)
1378
1380
((NihDBusCallback_%s)data->handler)(%s);
1379
1381
""" % (self.extern_name, ", ".join([ "data->proxy", "data->userdata" ] + out_args.names())), 1)
1380
1382
 
 
1383
        code += "out:\n"
1381
1384
        code += indent("""\
1382
1385
 
1383
1386
dbus_message_unref (reply);