aboutsummaryrefslogtreecommitdiff
path: root/src/pcm_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pcm_buffer.c')
-rw-r--r--src/pcm_buffer.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/pcm_buffer.c b/src/pcm_buffer.c
index 12d7194a..b277e768 100644
--- a/src/pcm_buffer.c
+++ b/src/pcm_buffer.c
@@ -1,5 +1,9 @@
/*
+<<<<<<< HEAD
* Copyright (C) 2003-2011 The Music Player Daemon Project
+=======
+ * Copyright (C) 2003-2010 The Music Player Daemon Project
+>>>>>>> v0.16.x
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -19,17 +23,30 @@
#include "pcm_buffer.h"
+/**
+ * Align the specified size to the next 8k boundary.
+ */
+G_GNUC_CONST
+static size_t
+align_8k(size_t size)
+{
+ return ((size - 1) | 0x1fff) + 1;
+}
+
void *
pcm_buffer_get(struct pcm_buffer *buffer, size_t size)
{
+ assert(buffer != NULL);
+
if (buffer->size < size) {
/* free the old buffer */
g_free(buffer->buffer);
- /* allocate a new buffer; align at 8 kB boundaries */
- buffer->size = ((size - 1) | 0x1fff) + 1;
+ buffer->size = align_8k(size);
buffer->buffer = g_malloc(buffer->size);
}
+ assert(buffer->size >= size);
+
return buffer->buffer;
}