528 static PyObject *
529 py_update (PyObject *self, PyObject *args, UpdateInfo *update_info)
530 {
531 const char *md_filename = NULL;
532 const char *checksum = NULL;
533 PyObject *log = NULL;
534 PyObject *progress = NULL;
535 PyObject *repoid = NULL;
536 guint log_id = 0;
537 char *db_filename;
538 PyObject *ret = NULL;
539 GError *err = NULL;
540
541 if (!py_parse_args (args, &md_filename, &checksum, &log, &progress,
when considering value == (gboolean)0 from sqlitecache.c:541
taking True path
542 &repoid))
543 return NULL;
544
545 GLogLevelFlags level = G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_WARNING |
546 G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_DEBUG;
547 log_id = g_log_set_handler (NULL, level, log_cb, log);
548
549 db_filename = update_packages (update_info, md_filename, checksum,
550 progress, repoid, &err);
551
552 g_log_remove_handler (NULL, log_id);
553
554 if (db_filename) {
555 ret = PyString_FromString (db_filename);
556 g_free (db_filename);
557 } else {
558 PyErr_SetString (PyExc_TypeError, err->message);
559 g_error_free (err);
560 }
561
562 return ret;
563 }
returning (PyObject*)NULL without setting an exception