From 439542f70c4546568dca3f2539d503aa7a6ec05b Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Tue, 21 Jan 2014 00:19:19 +0200 Subject: sequence.c: Start to refactor sequence operations for reuse among types. --- py/sequence.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 py/sequence.c (limited to 'py/sequence.c') diff --git a/py/sequence.c b/py/sequence.c new file mode 100644 index 0000000000..af3c61af6e --- /dev/null +++ b/py/sequence.c @@ -0,0 +1,25 @@ +#include +#include +#include +#include + +#include "nlr.h" +#include "misc.h" +#include "mpconfig.h" +#include "mpqstr.h" +#include "obj.h" +#include "map.h" +#include "runtime0.h" +#include "runtime.h" + +// Helpers for sequence types + +// Implements backend of sequence * integer operation. Assumes elements are +// memory-adjacent in sequence. +void mp_seq_multiply(const void *items, uint item_sz, uint len, uint times, void *dest) { + for (int i = 0; i < times; i++) { + uint copy_sz = item_sz * len; + memcpy(dest, items, copy_sz); + dest = (char*)dest + copy_sz; + } +} -- cgit v1.2.3