Check for null pointers from users.
This commit is contained in:
parent
ca2486ea61
commit
a91c4f66ce
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#if !defined(WINNT)
|
#if !defined(WINNT)
|
||||||
#ident "$Id: vpi_callback.cc,v 1.18 2002/05/28 22:55:20 steve Exp $"
|
#ident "$Id: vpi_callback.cc,v 1.19 2002/06/02 19:05:50 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -372,6 +372,7 @@ vpiHandle vpi_register_cb(p_cb_data data)
|
||||||
{
|
{
|
||||||
struct __vpiCallback*obj = 0;
|
struct __vpiCallback*obj = 0;
|
||||||
|
|
||||||
|
assert(data);
|
||||||
switch (data->reason) {
|
switch (data->reason) {
|
||||||
|
|
||||||
case cbValueChange:
|
case cbValueChange:
|
||||||
|
|
@ -459,6 +460,9 @@ void callback_functor_s::set(vvp_ipoint_t, bool, unsigned val, unsigned)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: vpi_callback.cc,v $
|
* $Log: vpi_callback.cc,v $
|
||||||
|
* Revision 1.19 2002/06/02 19:05:50 steve
|
||||||
|
* Check for null pointers from users.
|
||||||
|
*
|
||||||
* Revision 1.18 2002/05/28 22:55:20 steve
|
* Revision 1.18 2002/05/28 22:55:20 steve
|
||||||
* Callbacks can happen during calltf functions.
|
* Callbacks can happen during calltf functions.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#if !defined(WINNT) && !defined(macintosh)
|
#if !defined(WINNT) && !defined(macintosh)
|
||||||
#ident "$Id: vpi_iter.cc,v 1.3 2002/05/03 15:44:11 steve Exp $"
|
#ident "$Id: vpi_iter.cc,v 1.4 2002/06/02 19:05:50 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -74,6 +74,7 @@ vpiHandle vpip_make_iterator(unsigned nargs, vpiHandle*args,
|
||||||
vpiHandle vpi_scan(vpiHandle ref)
|
vpiHandle vpi_scan(vpiHandle ref)
|
||||||
{
|
{
|
||||||
struct __vpiIterator*hp = (struct __vpiIterator*)ref;
|
struct __vpiIterator*hp = (struct __vpiIterator*)ref;
|
||||||
|
assert(ref);
|
||||||
assert(ref->vpi_type->type_code == vpiIterator);
|
assert(ref->vpi_type->type_code == vpiIterator);
|
||||||
|
|
||||||
if (ref->vpi_type->index_)
|
if (ref->vpi_type->index_)
|
||||||
|
|
@ -89,6 +90,9 @@ vpiHandle vpi_scan(vpiHandle ref)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: vpi_iter.cc,v $
|
* $Log: vpi_iter.cc,v $
|
||||||
|
* Revision 1.4 2002/06/02 19:05:50 steve
|
||||||
|
* Check for null pointers from users.
|
||||||
|
*
|
||||||
* Revision 1.3 2002/05/03 15:44:11 steve
|
* Revision 1.3 2002/05/03 15:44:11 steve
|
||||||
* Add vpiModule iterator to vpiScope objects.
|
* Add vpiModule iterator to vpiScope objects.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#if !defined(WINNT)
|
#if !defined(WINNT)
|
||||||
#ident "$Id: vpi_priv.cc,v 1.15 2002/05/18 02:34:11 steve Exp $"
|
#ident "$Id: vpi_priv.cc,v 1.16 2002/06/02 19:05:50 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# include "vpi_priv.h"
|
# include "vpi_priv.h"
|
||||||
|
|
@ -40,6 +40,7 @@ struct __vpiSysTaskCall*vpip_cur_task = 0;
|
||||||
|
|
||||||
int vpi_free_object(vpiHandle ref)
|
int vpi_free_object(vpiHandle ref)
|
||||||
{
|
{
|
||||||
|
assert(ref);
|
||||||
assert(ref->vpi_type->vpi_free_object_);
|
assert(ref->vpi_type->vpi_free_object_);
|
||||||
return ref->vpi_type->vpi_free_object_(ref);
|
return ref->vpi_type->vpi_free_object_(ref);
|
||||||
}
|
}
|
||||||
|
|
@ -74,6 +75,7 @@ int vpi_get(int property, vpiHandle ref)
|
||||||
|
|
||||||
char* vpi_get_str(int property, vpiHandle ref)
|
char* vpi_get_str(int property, vpiHandle ref)
|
||||||
{
|
{
|
||||||
|
assert(ref);
|
||||||
if (ref->vpi_type->vpi_get_str_ == 0)
|
if (ref->vpi_type->vpi_get_str_ == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
@ -82,8 +84,9 @@ char* vpi_get_str(int property, vpiHandle ref)
|
||||||
|
|
||||||
void vpi_get_time(vpiHandle obj, s_vpi_time*vp)
|
void vpi_get_time(vpiHandle obj, s_vpi_time*vp)
|
||||||
{
|
{
|
||||||
// XXXX Cheat. Ignore timescale for the scope.
|
assert(vp);
|
||||||
|
|
||||||
|
// XXXX Cheat. Ignore timescale for the scope.
|
||||||
vp->type = vpiSimTime;
|
vp->type = vpiSimTime;
|
||||||
vp->high = 0;
|
vp->high = 0;
|
||||||
vp->low = schedule_simtime();
|
vp->low = schedule_simtime();
|
||||||
|
|
@ -111,6 +114,8 @@ void vpi_set_vlog_info(int argc, char** argv)
|
||||||
|
|
||||||
void vpi_get_value(vpiHandle expr, s_vpi_value*vp)
|
void vpi_get_value(vpiHandle expr, s_vpi_value*vp)
|
||||||
{
|
{
|
||||||
|
assert(expr);
|
||||||
|
assert(vp);
|
||||||
if (expr->vpi_type->vpi_get_value_) {
|
if (expr->vpi_type->vpi_get_value_) {
|
||||||
(expr->vpi_type->vpi_get_value_)(expr, vp);
|
(expr->vpi_type->vpi_get_value_)(expr, vp);
|
||||||
return;
|
return;
|
||||||
|
|
@ -122,6 +127,7 @@ void vpi_get_value(vpiHandle expr, s_vpi_value*vp)
|
||||||
vpiHandle vpi_put_value(vpiHandle obj, s_vpi_value*vp,
|
vpiHandle vpi_put_value(vpiHandle obj, s_vpi_value*vp,
|
||||||
s_vpi_time*tp, int flags)
|
s_vpi_time*tp, int flags)
|
||||||
{
|
{
|
||||||
|
assert(obj);
|
||||||
if (obj->vpi_type->vpi_put_value_)
|
if (obj->vpi_type->vpi_put_value_)
|
||||||
return (obj->vpi_type->vpi_put_value_)(obj, vp, tp, flags);
|
return (obj->vpi_type->vpi_put_value_)(obj, vp, tp, flags);
|
||||||
else
|
else
|
||||||
|
|
@ -135,6 +141,7 @@ vpiHandle vpi_handle(int type, vpiHandle ref)
|
||||||
return &vpip_cur_task->base;
|
return &vpip_cur_task->base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(ref);
|
||||||
assert(ref->vpi_type->handle_);
|
assert(ref->vpi_type->handle_);
|
||||||
return (ref->vpi_type->handle_)(type, ref);
|
return (ref->vpi_type->handle_)(type, ref);
|
||||||
}
|
}
|
||||||
|
|
@ -175,6 +182,7 @@ vpiHandle vpi_iterate(int type, vpiHandle ref)
|
||||||
|
|
||||||
vpiHandle vpi_handle_by_index(vpiHandle ref, int idx)
|
vpiHandle vpi_handle_by_index(vpiHandle ref, int idx)
|
||||||
{
|
{
|
||||||
|
assert(ref);
|
||||||
assert(ref->vpi_type->index_);
|
assert(ref->vpi_type->index_);
|
||||||
return (ref->vpi_type->index_)(ref, idx);
|
return (ref->vpi_type->index_)(ref, idx);
|
||||||
}
|
}
|
||||||
|
|
@ -199,6 +207,9 @@ extern "C" void vpi_sim_vcontrol(int operation, va_list ap)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: vpi_priv.cc,v $
|
* $Log: vpi_priv.cc,v $
|
||||||
|
* Revision 1.16 2002/06/02 19:05:50 steve
|
||||||
|
* Check for null pointers from users.
|
||||||
|
*
|
||||||
* Revision 1.15 2002/05/18 02:34:11 steve
|
* Revision 1.15 2002/05/18 02:34:11 steve
|
||||||
* Add vpi support for named events.
|
* Add vpi support for named events.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#if !defined(WINNT)
|
#if !defined(WINNT)
|
||||||
#ident "$Id: vpi_tasks.cc,v 1.14 2002/05/18 02:34:11 steve Exp $"
|
#ident "$Id: vpi_tasks.cc,v 1.15 2002/06/02 19:05:50 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -326,6 +326,7 @@ void vpip_execute_vpi_call(vthread_t thr, vpiHandle ref)
|
||||||
void vpi_register_systf(const struct t_vpi_systf_data*ss)
|
void vpi_register_systf(const struct t_vpi_systf_data*ss)
|
||||||
{
|
{
|
||||||
struct __vpiUserSystf*cur = allocate_def();
|
struct __vpiUserSystf*cur = allocate_def();
|
||||||
|
assert(ss);
|
||||||
switch (ss->type) {
|
switch (ss->type) {
|
||||||
case vpiSysTask:
|
case vpiSysTask:
|
||||||
cur->base.vpi_type = &vpip_systask_def_rt;
|
cur->base.vpi_type = &vpip_systask_def_rt;
|
||||||
|
|
@ -343,6 +344,9 @@ void vpi_register_systf(const struct t_vpi_systf_data*ss)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: vpi_tasks.cc,v $
|
* $Log: vpi_tasks.cc,v $
|
||||||
|
* Revision 1.15 2002/06/02 19:05:50 steve
|
||||||
|
* Check for null pointers from users.
|
||||||
|
*
|
||||||
* Revision 1.14 2002/05/18 02:34:11 steve
|
* Revision 1.14 2002/05/18 02:34:11 steve
|
||||||
* Add vpi support for named events.
|
* Add vpi support for named events.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue