From cd04ab60bef9c99a3c4c810d3986aa9a179ff83b Mon Sep 17 00:00:00 2001 From: jbrv Date: Mon, 11 Jun 2012 14:31:55 +0200 Subject: [PATCH] Add a function to copy a RngStream structure --- include/xbt/RngStream.h | 3 +++ src/xbt/RngStream.c | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/xbt/RngStream.h b/include/xbt/RngStream.h index a2ca8117de..e9b8ef33c7 100644 --- a/include/xbt/RngStream.h +++ b/include/xbt/RngStream.h @@ -24,6 +24,9 @@ XBT_PUBLIC(RngStream) RngStream_CreateStream (const char name[]); XBT_PUBLIC(void) RngStream_DeleteStream (RngStream *pg); +XBT_PUBLIC(RngStream) RngStream_CopyStream (const RngStream src); + + XBT_PUBLIC(void) RngStream_ResetStartStream (RngStream g); diff --git a/src/xbt/RngStream.c b/src/xbt/RngStream.c index 494f9deeac..2608d16c7f 100644 --- a/src/xbt/RngStream.c +++ b/src/xbt/RngStream.c @@ -346,6 +346,27 @@ void RngStream_DeleteStream (RngStream * p) /*-------------------------------------------------------------------------*/ +RngStream RngStream_CopyStream (const RngStream src) +{ + RngStream g; + + if(src == NULL) { + printf ("RngStream_CopyStream: 'src' not initialized\n\n"); + exit (EXIT_FAILURE); + } + + g = (RngStream) malloc (sizeof (struct RngStream_InfoState)); + if (g == NULL) { + printf ("RngStream_CopyStream: No more memory\n\n"); + exit (EXIT_FAILURE); + } + memcpy((void*) g, (void*) src, sizeof (struct RngStream_InfoState)); + + return g; +} + +/*-------------------------------------------------------------------------*/ + void RngStream_ResetStartStream (RngStream g) { int i; -- 2.20.1