vpi: delete merged Icarus Verilog patch
This commit is contained in:
parent
623e8e436a
commit
1b60c7ff40
|
@ -1,63 +0,0 @@
|
||||||
From 6e85fad37a9d40cb02a71196fe5e6981cf255d6e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sebastien Bourdeauducq <sebastien@milkymist.org>
|
|
||||||
Date: Thu, 8 Mar 2012 17:13:32 +0100
|
|
||||||
Subject: [PATCH] Copy vector values in vpi_put_value.
|
|
||||||
|
|
||||||
Like it's done for strings.
|
|
||||||
---
|
|
||||||
vvp/vpi_priv.cc | 22 ++++++++++++++++++++--
|
|
||||||
1 files changed, 20 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/vvp/vpi_priv.cc b/vvp/vpi_priv.cc
|
|
||||||
index 0d82b55..be04b31 100644
|
|
||||||
--- a/vvp/vpi_priv.cc
|
|
||||||
+++ b/vvp/vpi_priv.cc
|
|
||||||
@@ -948,15 +948,31 @@ void vpip_put_value_event::run_run()
|
|
||||||
case vpiStringVal:
|
|
||||||
free(value.value.str);
|
|
||||||
break;
|
|
||||||
+ case vpiVectorVal:
|
|
||||||
+ free(value.value.vector);
|
|
||||||
+ break;
|
|
||||||
/* If these are ever copied then free them too. */
|
|
||||||
case vpiTimeVal:
|
|
||||||
- case vpiVectorVal:
|
|
||||||
case vpiStrengthVal:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+static t_vpi_vecval *copy_vector_for(vpiHandle obj, t_vpi_vecval *source)
|
|
||||||
+{
|
|
||||||
+ int size;
|
|
||||||
+ int nbytes;
|
|
||||||
+ t_vpi_vecval *r;
|
|
||||||
+
|
|
||||||
+ size = vpi_get(vpiSize, obj);
|
|
||||||
+ nbytes = ((size + 31)/32)*sizeof(t_vpi_vecval);
|
|
||||||
+ r = (t_vpi_vecval *)malloc(nbytes);
|
|
||||||
+ assert(r);
|
|
||||||
+ memcpy(r, source, nbytes);
|
|
||||||
+ return r;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
vpiHandle vpi_put_value(vpiHandle obj, s_vpi_value*vp,
|
|
||||||
s_vpi_time*when, PLI_INT32 flags)
|
|
||||||
{
|
|
||||||
@@ -1008,9 +1024,11 @@ vpiHandle vpi_put_value(vpiHandle obj, s_vpi_value*vp,
|
|
||||||
case vpiStringVal:
|
|
||||||
put->value.value.str = strdup(put->value.value.str);
|
|
||||||
break;
|
|
||||||
+ case vpiVectorVal:
|
|
||||||
+ put->value.value.vector = copy_vector_for(obj, put->value.value.vector);
|
|
||||||
+ break;
|
|
||||||
/* Do these also need to be copied? */
|
|
||||||
case vpiTimeVal:
|
|
||||||
- case vpiVectorVal:
|
|
||||||
case vpiStrengthVal:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
--
|
|
||||||
1.7.7.6
|
|
||||||
|
|
Loading…
Reference in New Issue