diff --git a/libXmd/include/Xmd/Buffer.h b/libXmd/include/Xmd/Buffer.h index e36e622..ce0f2db 100644 --- a/libXmd/include/Xmd/Buffer.h +++ b/libXmd/include/Xmd/Buffer.h @@ -31,6 +31,9 @@ void XmdBufferPeek (XmdBuffer *buffer, Cardinal index, void *element); returned and must be freed manually using XtFree() at some point. */ void *XmdBufferBreak (XmdBuffer *buffer); +/* XmdBufferLength returns the amount of elements stored in a buffer. */ +Cardinal XmdBufferLength (XmdBuffer *buffer); + /* XmdBufferFree frees the buffer and any data associated with it. */ void XmdBufferFree (XmdBuffer *buffer); diff --git a/libXmd/src/Buffer.c b/libXmd/src/Buffer.c index 6fcd54c..ac02b3a 100644 --- a/libXmd/src/Buffer.c +++ b/libXmd/src/Buffer.c @@ -40,6 +40,7 @@ void XmdBufferResize (XmdBuffer *buffer, Cardinal length) { void XmdBufferFit (XmdBuffer *buffer) { if (buffer->length > buffer->capacity) { + puts("fitting"); buffer->capacity *= XmdBUFFER_GROWTH_FACTOR; buffer->data = XtReallocArray ( buffer->data, @@ -70,9 +71,6 @@ void XmdBufferPoke (XmdBuffer *buffer, Cardinal index, void *element) { XmdBufferOffset(buffer, index), element, buffer->size); - - char test; - XmdBufferPeek(buffer, index, &test); } void XmdBufferPeek (XmdBuffer *buffer, Cardinal index, void *element) { @@ -89,6 +87,10 @@ void *XmdBufferBreak (XmdBuffer *buffer) { return data; } +Cardinal XmdBufferLength (XmdBuffer *buffer) { + return buffer->length; +} + void XmdBufferFree (XmdBuffer *buffer) { if (buffer->data != NULL) { XtFree(buffer->data);