New function to reset the state of a GChecksum. (g_checksum_new): Call
authorJeffrey Stedfast <fejj@novell.com>
Sat, 17 May 2008 16:53:54 +0000 (16:53 +0000)
committerJeffrey Stedfast <fejj@src.gnome.org>
Sat, 17 May 2008 16:53:54 +0000 (16:53 +0000)
2008-05-12  Jeffrey Stedfast  <fejj@novell.com>

* glib/gchecksum.c (g_checksum_reset): New function to reset the
state of a GChecksum.
(g_checksum_new): Call g_checksum_reset() instead of duplicating
code.

svn path=/trunk/; revision=6903

ChangeLog
glib/gchecksum.c
glib/gchecksum.h

index 09cee8c5e4e2c73e121e18dabef102697ffbb6a8..517699dc16c4ccc2efc923002e38d1d3a696156b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-05-12  Jeffrey Stedfast  <fejj@novell.com>
+
+       * glib/gchecksum.c (g_checksum_reset): New function to reset the
+       state of a GChecksum.
+       (g_checksum_new): Call g_checksum_reset() instead of duplicating
+       code.
+
 2008-05-17  Matthias Clasen  <mclasen@redhat.com>
 
        Bug 528667 – Typos in testing module documentation
@@ -45,6 +52,7 @@
 
        * glib/gi18n.c: #include <locale.h> to fix the build.
 
+>>>>>>> .r6902
 2008-05-12  Yair Hershkovitz  <yairhr@gmail.com>
 
        * glib/gi18n.c (g_i18n_init): Coding convention fix. Space between
index 0b0ce54fc1445a055d46ac03fbf3890d7c0f62b5..bc1816930ddf1e266e35ff74265a2d2b4e109e85 100644 (file)
@@ -1114,7 +1114,24 @@ g_checksum_new (GChecksumType checksum_type)
   checksum = g_slice_new0 (GChecksum);
   checksum->type = checksum_type;
 
-  switch (checksum_type)
+  g_checksum_reset (checksum);
+
+  return checksum;
+}
+
+/**
+ * g_checksum_reset:
+ * @checksum: the #GChecksum to reset
+ *
+ * Resets the state of the @checksum back to it's initial state.
+ **/
+void
+g_checksum_reset (GChecksum *checksum)
+{
+  g_free (checksum->digest_str);
+  checksum->digest_str = NULL;
+  
+  switch (checksum->type)
     {
     case G_CHECKSUM_MD5:
       md5_sum_init (&(checksum->sum.md5));
@@ -1129,8 +1146,6 @@ g_checksum_new (GChecksumType checksum_type)
       g_assert_not_reached ();
       break;
     }
-
-  return checksum;
 }
 
 /**
index 7df3db4df63f7e0bd58c72d583befa896ef4c35f..f0d58a5e7440731ea6b96878017276597015860e 100644 (file)
@@ -54,6 +54,7 @@ typedef struct _GChecksum       GChecksum;
 gssize                g_checksum_type_get_length (GChecksumType checksum_type);
 
 GChecksum *           g_checksum_new        (GChecksumType     checksum_type);
+void                  g_checksum_reset      (GChecksum        *checksum);
 GChecksum *           g_checksum_copy       (const GChecksum  *checksum);
 void                  g_checksum_free       (GChecksum        *checksum);
 void                  g_checksum_update     (GChecksum        *checksum,