Propagate functor push, to make assign better.

This commit is contained in:
steve 2001-10-27 03:43:56 +00:00
parent 96a50d635d
commit 21194c909a
2 changed files with 11 additions and 5 deletions

View File

@ -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: functor.cc,v 1.27 2001/10/12 03:00:09 steve Exp $" #ident "$Id: functor.cc,v 1.28 2001/10/27 03:43:56 steve Exp $"
#endif #endif
# include "functor.h" # include "functor.h"
@ -314,7 +314,7 @@ unsigned vvp_fobj_s::get(vvp_ipoint_t, functor_t fp)
* be propagated. Pass the output to the inputs of all the connected * be propagated. Pass the output to the inputs of all the connected
* functors. * functors.
*/ */
void functor_propagate(vvp_ipoint_t ptr) void functor_propagate(vvp_ipoint_t ptr, bool push)
{ {
functor_t fp = functor_index(ptr); functor_t fp = functor_index(ptr);
unsigned char oval = fp->oval; unsigned char oval = fp->oval;
@ -325,7 +325,7 @@ void functor_propagate(vvp_ipoint_t ptr)
functor_t idxp = functor_index(idx); functor_t idxp = functor_index(idx);
vvp_ipoint_t next = idxp->port[ipoint_port(idx)]; vvp_ipoint_t next = idxp->port[ipoint_port(idx)];
functor_set(idx, oval, ostr, false); functor_set(idx, oval, ostr, push);
idx = next; idx = next;
} }
} }
@ -356,6 +356,9 @@ const unsigned char ft_var[16] = {
/* /*
* $Log: functor.cc,v $ * $Log: functor.cc,v $
* Revision 1.28 2001/10/27 03:43:56 steve
* Propagate functor push, to make assign better.
*
* Revision 1.27 2001/10/12 03:00:09 steve * Revision 1.27 2001/10/12 03:00:09 steve
* M42 implementation of mode 2 (Stephan Boettcher) * M42 implementation of mode 2 (Stephan Boettcher)
* *

View File

@ -19,7 +19,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: functor.h,v 1.33 2001/10/12 03:00:09 steve Exp $" #ident "$Id: functor.h,v 1.34 2001/10/27 03:43:56 steve Exp $"
#endif #endif
# include "pointers.h" # include "pointers.h"
@ -260,7 +260,7 @@ extern unsigned functor_get(vvp_ipoint_t ptr);
* the inputs it is connected to, creating new propagation event on * the inputs it is connected to, creating new propagation event on
* the way. * the way.
*/ */
extern void functor_propagate(vvp_ipoint_t ptr); extern void functor_propagate(vvp_ipoint_t ptr, bool push = true);
/* /*
* Given an ipoint_t pointer, return a C pointer to the functor. This * Given an ipoint_t pointer, return a C pointer to the functor. This
* is like a pointer dereference. The point parameter must have been * is like a pointer dereference. The point parameter must have been
@ -320,6 +320,9 @@ extern const unsigned char ft_var[];
/* /*
* $Log: functor.h,v $ * $Log: functor.h,v $
* Revision 1.34 2001/10/27 03:43:56 steve
* Propagate functor push, to make assign better.
*
* Revision 1.33 2001/10/12 03:00:09 steve * Revision 1.33 2001/10/12 03:00:09 steve
* M42 implementation of mode 2 (Stephan Boettcher) * M42 implementation of mode 2 (Stephan Boettcher)
* *