Next: The Root Node Data Placing Method, Previous: The Data Comparison Method, Up: Bitmapped B-tree Fixed Size Data Arrays [Index]
The method moves data from some location to another. Its signature is:
int (*)(void *, void *, unsigned);
The first argument is the target location, the second the source location, the third the item count to be moved.
13 byte string data items example:
static int move(void *target, void *source, unsigned count) { memmove(target, source, count * 13); return 0; }
Unsigned long data items example:
static int move(void *target, void *source, unsigned count) { memmove(target, source, count * sizeof(unsigned long)); return 0; }
Same unsigned long data items example, no memmove
:
static int move(void *target, void *source, unsigned count) { unsigned long *s, *t; s = source; t = target; if (count ^ 1) { if (t < s) { for (; count; count--) { *t++ = *s++; } } else { s += count; if (t < s) { t += count; for (; count; count--) { *--t = *--s; } } else { s -= count; for (; count; count--) { *t++ = *s++; } } } } else { *t++ = *s++; } return 0; }