[maemo-commits] [maemo-commits] r11909 - in projects/haf/trunk/hildon-home-webshortcut: . plugin
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon May 28 17:55:55 EEST 2007
- Previous message: [maemo-commits] r11908 - in projects/haf/trunk/hildon-1: . src
- Next message: [maemo-commits] r11910 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: jobi Date: 2007-05-28 17:55:54 +0300 (Mon, 28 May 2007) New Revision: 11909 Modified: projects/haf/trunk/hildon-home-webshortcut/ChangeLog projects/haf/trunk/hildon-home-webshortcut/plugin/hhwsloader.c projects/haf/trunk/hildon-home-webshortcut/plugin/hildon-home-webshortcut.c Log: 2007-05-28 Johan Bilien <johan.bilien at nokia.com> * plugin/hhwsloader.c: - track errors on gdk_pixbuf_loader_close, which allows to detect troncated images - treat GDK_PIXBUF_ERROR_FAILED as corrupted images Modified: projects/haf/trunk/hildon-home-webshortcut/ChangeLog =================================================================== --- projects/haf/trunk/hildon-home-webshortcut/ChangeLog 2007-05-28 14:47:41 UTC (rev 11908) +++ projects/haf/trunk/hildon-home-webshortcut/ChangeLog 2007-05-28 14:55:54 UTC (rev 11909) @@ -1,5 +1,12 @@ 2007-05-28 Johan Bilien <johan.bilien at nokia.com> + * plugin/hhwsloader.c: + - track errors on gdk_pixbuf_loader_close, which allows to detect + troncated images + - treat GDK_PIXBUF_ERROR_FAILED as corrupted images + +2007-05-28 Johan Bilien <johan.bilien at nokia.com> + * plugin/hildon-home-webshortcut.c: - add file dialog filter back, removed by accident Modified: projects/haf/trunk/hildon-home-webshortcut/plugin/hhwsloader.c =================================================================== --- projects/haf/trunk/hildon-home-webshortcut/plugin/hhwsloader.c 2007-05-28 14:47:41 UTC (rev 11908) +++ projects/haf/trunk/hildon-home-webshortcut/plugin/hhwsloader.c 2007-05-28 14:55:54 UTC (rev 11909) @@ -410,7 +410,7 @@ mmc_mount_point = g_getenv (HHWS_LOADER_ENV_MMC_MOUNTPOINT); mmc_mount_point_uri = g_strdup_printf ("file://%s", mmc_mount_point); mmc_internal_mount_point = g_getenv (HHWS_LOADER_ENV_INTERNAL_MMC_MOUNTPOINT); - mmc_internal_mount_point_uri = + mmc_internal_mount_point_uri = g_strdup_printf ("file://%s", mmc_internal_mount_point); if (mmc_mount_point && @@ -425,16 +425,15 @@ HHWS_LOADER_ERROR_MMC_OPEN, "MMC cover is open"); g_signal_emit_by_name (l, "loading-failed", error); - g_error_free (error); goto cleanup; } } - + if (mmc_internal_mount_point && (g_str_has_prefix (priv->uri, mmc_internal_mount_point) || g_str_has_prefix (priv->uri, mmc_internal_mount_point_uri))) on_internal_mmc = TRUE; - + g_free (mmc_mount_point_uri); g_free (mmc_internal_mount_point_uri); @@ -451,10 +450,9 @@ HHWS_LOADER_ERROR_OPEN_FAILED, gnome_vfs_result_to_string (result)); g_signal_emit_by_name (l, "loading-failed", error); - g_error_free (error); goto cleanup; } - + if (!local && priv->tmp_file) { cache_result = gnome_vfs_create (&cache_handle, @@ -472,7 +470,7 @@ /* Setting up a memory watchdog */ if (osso_mem_saw_enable (3 << 20, 32767, hhws_loader_oom_cb, (void *)&oom)) oom = TRUE; - + loader = gdk_pixbuf_loader_new (); while (!oom && result != GNOME_VFS_ERROR_EOF) @@ -487,12 +485,12 @@ HHWS_LOADER_ERROR_MMC_OPEN, "MMC cover is open"); g_signal_emit_by_name (l, "loading-failed", error); - g_error_free (error); - gdk_pixbuf_loader_close (loader, NULL); + g_clear_error (&error); + gdk_pixbuf_loader_close (loader, &error); goto cleanup; } } - + result = gnome_vfs_read (handle, buffer, BUF_SIZE, &bytes_read); switch (result) @@ -506,11 +504,10 @@ g_signal_emit_by_name (l, "loading-failed", loader_error); - g_error_free (loader_error); - gdk_pixbuf_loader_close (loader, NULL); + gdk_pixbuf_loader_close (loader, &error); goto cleanup; } - + if (cache_handle) { cache_result = @@ -533,22 +530,27 @@ HHWS_LOADER_ERROR_OPEN_FAILED, gnome_vfs_result_to_string (result)); g_signal_emit_by_name (l, "loading-failed", error); - g_error_free (error); - gdk_pixbuf_loader_close (loader, NULL); + g_clear_error (&error); + gdk_pixbuf_loader_close (loader, &error); goto cleanup; } } - gdk_pixbuf_loader_close (loader, NULL); + gdk_pixbuf_loader_close (loader, &error); + if (error) + { + g_signal_emit_by_name (l, "loading-failed", error); + goto cleanup; + } + if (oom) { error = g_error_new (hhws_loader_error_quark (), HHWS_LOADER_ERROR_MEMORY, "out of memory"); g_signal_emit_by_name (l, "loading-failed", error); - g_error_free (error); - + goto cleanup; } @@ -561,8 +563,7 @@ HHWS_LOADER_ERROR_CORRUPTED, "image file was corrupted"); g_signal_emit_by_name (l, "loading-failed", error); - g_error_free (error); - + goto cleanup; } @@ -584,7 +585,7 @@ priv->image_name = hhws_url_to_filename (priv->uri); g_free (priv->uri); priv->uri = g_strdup (priv->cache_file); - + } } } @@ -603,6 +604,9 @@ if (cache_handle) gnome_vfs_close (cache_handle); + + if (error) + g_error_free (error); } static gboolean @@ -610,7 +614,7 @@ { HhwsLoaderPriv *priv; g_return_val_if_fail (loader, FALSE); - + priv = HHWS_LOADER_GET_PRIVATE (loader); if (priv->pixbuf) @@ -631,15 +635,15 @@ GdkPixbuf *old_pixbuf; gchar *old_image_name; g_return_if_fail (l); - + priv = HHWS_LOADER_GET_PRIVATE (l); - + if (!priv->uri) { g_warning ("URI reset to NULL"); return; } - + old_pixbuf = priv->pixbuf; if (old_pixbuf) gdk_pixbuf_ref (old_pixbuf); Modified: projects/haf/trunk/hildon-home-webshortcut/plugin/hildon-home-webshortcut.c =================================================================== --- projects/haf/trunk/hildon-home-webshortcut/plugin/hildon-home-webshortcut.c 2007-05-28 14:47:41 UTC (rev 11908) +++ projects/haf/trunk/hildon-home-webshortcut/plugin/hildon-home-webshortcut.c 2007-05-28 14:55:54 UTC (rev 11909) @@ -175,6 +175,9 @@ case GDK_PIXBUF_ERROR_CORRUPT_IMAGE: text = HHWS_CORRUPTED_FILE; break; + case GDK_PIXBUF_ERROR_FAILED: /* seems to happen with some jpg */ + text = HHWS_CORRUPTED_FILE; + break; case GDK_PIXBUF_ERROR_UNKNOWN_TYPE: text = HHWS_NOT_SUPPORTED; break;
- Previous message: [maemo-commits] r11908 - in projects/haf/trunk/hildon-1: . src
- Next message: [maemo-commits] r11910 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]