svnno****@sourc*****
svnno****@sourc*****
2010年 11月 30日 (火) 01:26:57 JST
Revision: 340 http://sourceforge.jp/projects/swfed/svn/view?view=rev&revision=340 Author: yoya Date: 2010-11-30 01:26:57 +0900 (Tue, 30 Nov 2010) Log Message: ----------- y_keyvalue_next がゴミの use フラグを見る不具合を修正 Modified Paths: -------------- trunk/src/y_keyvalue.c trunk/src/y_keyvalue.h -------------- next part -------------- Modified: trunk/src/y_keyvalue.c =================================================================== --- trunk/src/y_keyvalue.c 2010-11-29 16:13:13 UTC (rev 339) +++ trunk/src/y_keyvalue.c 2010-11-29 16:26:57 UTC (rev 340) @@ -128,13 +128,12 @@ st->get_offset = -1; } int -y_keyvalue_hasnext(y_keyvalue_t *st) { - do { - st->get_offset++; +y_keyvalue_next(y_keyvalue_t *st) { + for (st->get_offset++; st->get_offset < st->use_len; st->get_offset++) { if (st->table[st->get_offset].use) { return 1; // found } - } while (st->get_offset < st->use_len); + } return 0;// false @@ -166,14 +165,14 @@ y_keyvalue_set(st, "foo", 4, "baa", 4); y_keyvalue_set(st, "baz", 4, "buz", 4); y_keyvalue_rewind(st); - while(y_keyvalue_hasnext(st)) { + while(y_keyvalue_next(st)) { key = y_keyvalue_get_currentkey(st, &key_len); value = y_keyvalue_get_currentvalue(st, &value_len); printf("key=%s(%d), value=%s(%d)\n", key, key_len, value, value_len); } y_keyvalue_delete(st, "foo", 4); y_keyvalue_rewind(st); - while(y_keyvalue_hasnext(st)) { + while(y_keyvalue_next(st)) { key = y_keyvalue_get_currentkey(st, &key_len); value = y_keyvalue_get_currentvalue(st, &value_len); printf("key=%s(%d), value=%s(%d)\n", key, key_len, value, value_len); Modified: trunk/src/y_keyvalue.h =================================================================== --- trunk/src/y_keyvalue.h 2010-11-29 16:13:13 UTC (rev 339) +++ trunk/src/y_keyvalue.h 2010-11-29 16:26:57 UTC (rev 340) @@ -26,7 +26,7 @@ // itelator extern void y_keyvalue_rewind(y_keyvalue_t *st); -extern int y_keyvalue_hasnext(y_keyvalue_t *st); +extern int y_keyvalue_next(y_keyvalue_t *st); extern char * y_keyvalue_get_currentkey(y_keyvalue_t *st, int *key_len); extern char * y_keyvalue_get_currentvalue(y_keyvalue_t *st, int *value_len);