diff options
Diffstat (limited to 'src/modelops/clone.c')
-rw-r--r-- | src/modelops/clone.c | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/modelops/clone.c b/src/modelops/clone.c deleted file mode 100644 index 8f92919..0000000 --- a/src/modelops/clone.c +++ /dev/null @@ -1,41 +0,0 @@ -#include <assert.h> -#include <stdlib.h> -#include <string.h> -#include <libelfu/libelfu.h> - -ElfuScn* elfu_mCloneScn(ElfuScn *ms) -{ - ElfuScn *newscn; - - assert(ms); - - newscn = malloc(sizeof(ElfuScn)); - if (!newscn) { - ELFU_WARN("elfu_nCloneScn: Could not allocate memory for new ElfuScn.\n"); - return NULL; - } - - newscn->shdr = ms->shdr; - newscn->data = ms->data; - if (ms->data.d_buf) { - void *newbuf = malloc(ms->data.d_size); - if (!newbuf) { - ELFU_WARN("elfu_nCloneScn: Could not allocate memory for new data buffer.\n"); - free(newscn); - return NULL; - } - - memcpy(newbuf, ms->data.d_buf, ms->data.d_size); - newscn->data.d_buf = newbuf; - } - - newscn->linkptr = NULL; - newscn->infoptr = NULL; - - newscn->oldptr = ms; - - CIRCLEQ_INIT(&ms->symtab.syms); - CIRCLEQ_INIT(&ms->reltab.rels); - - return newscn; -} |