X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fgl_array_list.c;h=f82d01b0b31cd9eac13fa321ac1152918b4c5294;hb=df1da811f288a89eb524a4176c6fd62bacfb954a;hp=deb83aea60177621d4b3616d25da958785c06e03;hpb=57fdfd3f8ec62b105c53bcdf6f127c35c7fe7391;p=gnulib.git diff --git a/lib/gl_array_list.c b/lib/gl_array_list.c index deb83aea6..f82d01b0b 100644 --- a/lib/gl_array_list.c +++ b/lib/gl_array_list.c @@ -1,5 +1,5 @@ /* Sequential list data type implemented by an array. - Copyright (C) 2006-2007 Free Software Foundation, Inc. + Copyright (C) 2006-2008 Free Software Foundation, Inc. Written by Bruno Haible , 2006. This program is free software: you can redistribute it and/or modify @@ -116,6 +116,16 @@ gl_array_node_value (gl_list_t list, gl_list_node_t node) return list->elements[index]; } +static void +gl_array_node_set_value (gl_list_t list, gl_list_node_t node, const void *elt) +{ + uintptr_t index = NODE_TO_INDEX (node); + if (!(index < list->count)) + /* Invalid argument. */ + abort (); + list->elements[index] = elt; +} + static gl_list_node_t gl_array_next_node (gl_list_t list, gl_list_node_t node) { @@ -618,6 +628,7 @@ const struct gl_list_implementation gl_array_list_implementation = gl_array_create, gl_array_size, gl_array_node_value, + gl_array_node_set_value, gl_array_next_node, gl_array_previous_node, gl_array_get_at,