Skip to content

Commit

Permalink
Added: M_MemDup() for taking a copy of memory buffer
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Feb 8, 2012
1 parent 639c80d commit 20b1f9d
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
1 change: 1 addition & 0 deletions doomsday/engine/portable/include/m_misc.h
Expand Up @@ -41,6 +41,7 @@
void* M_Malloc(size_t size);
void* M_Calloc(size_t size);
void* M_Realloc(void* ptr, size_t size);
void* M_MemDup(const void* ptr, size_t size);
void M_Free(void* ptr);

// File system utility routines.
Expand Down
4 changes: 2 additions & 2 deletions doomsday/engine/portable/src/gl_defer.c
Expand Up @@ -30,6 +30,7 @@
#include "de_console.h"
#include "de_system.h"
#include "de_graphics.h"
#include "m_misc.h"

#include "texturecontent.h"

Expand Down Expand Up @@ -149,8 +150,7 @@ LIBDENG_GL_DEFER2(uintArray, GLsizei s, const GLuint* v)
apifunc_t* api = malloc(sizeof(apifunc_t));
api->func.ptr_uintArray = ptr;
api->param.uintArray.count = s;
api->param.uintArray.values = malloc(sizeof(GLuint) * s);
memcpy(api->param.uintArray.values, v, sizeof(GLuint) * s);
api->param.uintArray.values = M_MemDup(v, sizeof(GLuint) * s);
enqueueTask(DTT_FUNC_PTR_UINT_ARRAY, api);
}

Expand Down
7 changes: 7 additions & 0 deletions doomsday/engine/portable/src/m_misc.c
Expand Up @@ -94,6 +94,13 @@ void *M_Realloc(void *ptr, size_t size)
return realloc(ptr, size);
}

void* M_MemDup(const void* ptr, size_t size)
{
void* copy = M_Malloc(size);
memcpy(copy, ptr, size);
return copy;
}

void M_Free(void *ptr)
{
free(ptr);
Expand Down

0 comments on commit 20b1f9d

Please sign in to comment.