Tiny speed improvement suggested by noon@users.sourceforge.net.
authorSebastian Wilhelmi <wilhelmi@ira.uka.de>
Wed, 23 May 2001 10:20:56 +0000 (10:20 +0000)
committerSebastian Wilhelmi <wilhelmi@src.gnome.org>
Wed, 23 May 2001 10:20:56 +0000 (10:20 +0000)
2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

* garray.c (g_array_remove_index_fast): Tiny speed improvement
suggested by noon@users.sourceforge.net.

* glib/tmpl/arrays.sgml, glib/tmpl/arrays_pointers.sgml,
glib/tmpl/arrays_byte.sgml: Corrected documentation for the
..._sized_new functions. Discovered by noon@users.sourceforge.net.

14 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
docs/reference/ChangeLog
docs/reference/glib/tmpl/arrays.sgml
docs/reference/glib/tmpl/arrays_byte.sgml
docs/reference/glib/tmpl/arrays_pointer.sgml
garray.c
glib/garray.c

index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index cd6afb256a5b79f4232612ea18d1172d435eb362..84a686fbf2a052def71b0f2ae238bc23d73ebfa9 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * garray.c (g_array_remove_index_fast): Tiny speed improvement
+       suggested by noon@users.sourceforge.net.
+
 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
index c07a45fdf5b2cafc8613f37f99d0c79acc4726fe..113ba61ad29f4e8571222c59ea4264cce3eae29a 100644 (file)
@@ -1,3 +1,9 @@
+2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * glib/tmpl/arrays.sgml, glib/tmpl/arrays_pointers.sgml,
+       glib/tmpl/arrays_byte.sgml: Corrected documentation for the
+       ..._sized_new functions. Discovered by noon@users.sourceforge.net.
+
 2001-05-19  Havoc Pennington  <hp@pobox.com>
 
        * glib/Makefile.am (IGNORE_HFILES): add glibintl.h
index 2bd14307ffaee4531bb6a03050c8b146d723825a..981ee5bb22ed57c5b33d4b95df0b4b83043dece9 100644 (file)
@@ -79,13 +79,16 @@ when they are allocated.
 
 <!-- ##### FUNCTION g_array_sized_new ##### -->
 <para>
-Creates a new #GArray with the given size.
+Creates a new #GArray with @reserved_size elements
+preallocated. This avoids frequent reallocation, if you are going to
+add many elements to the array. Note however that the size of the
+array is still 0.
 </para>
 
 @zero_terminated: %TRUE if the array should have an extra element at the end with all bits cleared
 @clear: %TRUE if all bits in the array should be cleared to 0 on allocation
 @element_size: size of each element in the array
-@reserved_size: initial array size (number of elements)
+@reserved_size: number of elements preallocated
 @Returns: the new #GArray
 
 
index 2303e1a8f0b4c740ba0b8c9e6abed8f34abec501..340f03abcc90588d67812466290748b4bcc0016b 100644 (file)
@@ -68,11 +68,13 @@ Creates a new #GByteArray.
 
 <!-- ##### FUNCTION g_byte_array_sized_new ##### -->
 <para>
-Creates a new byte array, with the given size.
+Creates a new #GByteArray with @reserved_size bytes preallocated. This
+avoids frequent reallocation, if you are going to add many bytes to
+the array. Note however that the size of the array is still 0.
 </para>
 
-@reserved_size: initial number of bytes in the array
-@Returns: a new #GByteArray
+@reserved_size: number of bytes preallocated
+@Returns: the new #GByteArray
 
 
 <!-- ##### FUNCTION g_byte_array_append ##### -->
index fbe1a3d060b92e9b09032d2d037f69f67c0c2a62..35c3d79ba8334259f3f6bc166730b6c7427e00dd 100644 (file)
@@ -82,10 +82,13 @@ Creates a new #GPtrArray.
 
 <!-- ##### FUNCTION g_ptr_array_sized_new ##### -->
 <para>
-Creates a new #GPtrArray with @reserved_size elements.
+Creates a new #GPtrArray with @reserved_size pointers
+preallocated. This avoids frequent reallocation, if you are going to
+add many pointers to the array. Note however that the size of the
+array is still 0.
 </para>
 
-@reserved_size: Initial number of elements.
+@reserved_size: number of pointers preallocated.
 @Returns: the new #GPtrArray.
 
 
index 9f32b76006baf35110e737a1502d15e38ed4ba49..9d65fca8181007b6c2c11f5d5a05c83594aaac80 100644 (file)
--- a/garray.c
+++ b/garray.c
@@ -254,9 +254,9 @@ g_array_remove_index_fast (GArray* farray,
   g_return_val_if_fail (index < array->len, NULL);
 
   if (index != array->len - 1)
-    g_memmove (g_array_elt_pos (array, index), 
-              g_array_elt_pos (array, array->len - 1),
-              g_array_elt_len (array, 1));
+    memcpy (g_array_elt_pos (array, index), 
+           g_array_elt_pos (array, array->len - 1),
+           g_array_elt_len (array, 1));
   
   array->len -= 1;
 
index 9f32b76006baf35110e737a1502d15e38ed4ba49..9d65fca8181007b6c2c11f5d5a05c83594aaac80 100644 (file)
@@ -254,9 +254,9 @@ g_array_remove_index_fast (GArray* farray,
   g_return_val_if_fail (index < array->len, NULL);
 
   if (index != array->len - 1)
-    g_memmove (g_array_elt_pos (array, index), 
-              g_array_elt_pos (array, array->len - 1),
-              g_array_elt_len (array, 1));
+    memcpy (g_array_elt_pos (array, index), 
+           g_array_elt_pos (array, array->len - 1),
+           g_array_elt_len (array, 1));
   
   array->len -= 1;