From 88ae1b7b3cbad3328f46bcbdf23789a45d0dd529 Mon Sep 17 00:00:00 2001 From: steve Date: Thu, 9 May 2002 03:34:31 +0000 Subject: [PATCH] Handle null time and calltf pointers. --- vvp/vpi_callback.cc | 12 ++++++++++-- vvp/vpi_tasks.cc | 9 ++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/vvp/vpi_callback.cc b/vvp/vpi_callback.cc index a79c0fa7a..5101c0b03 100644 --- a/vvp/vpi_callback.cc +++ b/vvp/vpi_callback.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: vpi_callback.cc,v 1.14 2002/05/04 03:17:29 steve Exp $" +#ident "$Id: vpi_callback.cc,v 1.15 2002/05/09 03:34:31 steve Exp $" #endif /* @@ -200,7 +200,11 @@ static struct __vpiCallback* make_value_change(p_cb_data data) { struct __vpiCallback*obj = new_vpi_callback(); obj->cb_data = *data; - obj->cb_time = *(data->time); + if (data->time) { + obj->cb_time = *(data->time); + } else { + obj->cb_time.type = vpiSuppressTime; + } obj->cb_data.time = &obj->cb_time; assert(data->obj); @@ -242,6 +246,7 @@ static struct __vpiCallback* make_sync(p_cb_data data, bool readonly_flag) { struct __vpiCallback*obj = new_vpi_callback(); obj->cb_data = *data; + assert(data->time); obj->cb_time = *(data->time); obj->cb_data.time = &obj->cb_time; @@ -426,6 +431,9 @@ void callback_functor_s::set(vvp_ipoint_t, bool, unsigned val, unsigned) /* * $Log: vpi_callback.cc,v $ + * Revision 1.15 2002/05/09 03:34:31 steve + * Handle null time and calltf pointers. + * * Revision 1.14 2002/05/04 03:17:29 steve * Properly free vpi callback objects. * diff --git a/vvp/vpi_tasks.cc b/vvp/vpi_tasks.cc index 3c0424be7..3e22c7a84 100644 --- a/vvp/vpi_tasks.cc +++ b/vvp/vpi_tasks.cc @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: vpi_tasks.cc,v 1.12 2002/05/03 15:44:11 steve Exp $" +#ident "$Id: vpi_tasks.cc,v 1.13 2002/05/09 03:34:31 steve Exp $" #endif /* @@ -305,8 +305,8 @@ void vpip_execute_vpi_call(vthread_t thr, vpiHandle ref) vpip_cur_task = (struct __vpiSysTaskCall*)ref; - assert(vpip_cur_task->defn->info.calltf); - vpip_cur_task->defn->info.calltf (vpip_cur_task->defn->info.user_data); + if (vpip_cur_task->defn->info.calltf) + vpip_cur_task->defn->info.calltf(vpip_cur_task->defn->info.user_data); } /* @@ -335,6 +335,9 @@ void vpi_register_systf(const struct t_vpi_systf_data*ss) /* * $Log: vpi_tasks.cc,v $ + * Revision 1.13 2002/05/09 03:34:31 steve + * Handle null time and calltf pointers. + * * Revision 1.12 2002/05/03 15:44:11 steve * Add vpiModule iterator to vpiScope objects. *