From 23761549574d4da856c5870455f232758533844b Mon Sep 17 00:00:00 2001 From: Redo Date: Fri, 4 Nov 2022 18:51:18 -0600 Subject: [PATCH] make gate update use net c structT --- sim/gate.lua | 3 +-- sim/gatedef.lua | 1 + sim/port.lua | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sim/gate.lua b/sim/gate.lua index 2753989..a77ecb3 100644 --- a/sim/gate.lua +++ b/sim/gate.lua @@ -58,8 +58,7 @@ function Gate.setportstate(gate, index, state) gate.port_states[index] = state if ((gate.port_net_state_num[index][0]>0) ~= (gate.port_net_state[index][0]==1)) and (gate.port_net_in_queue[index][0]==0) then - local net = gate.port_nets[index] - local cnet = net.c + local cnet = gate.port_nets_c[index] Simulation.queuegroup_c(GSim, cnet) end end diff --git a/sim/gatedef.lua b/sim/gatedef.lua index b90934d..9c4cf21 100644 --- a/sim/gatedef.lua +++ b/sim/gatedef.lua @@ -107,6 +107,7 @@ function GateDefinition.constructgate(def, objref, position, rotation) gate.port_net_state [port.idx] = ffi.cast("int*", 0) gate.port_net_state_num[port.idx] = ffi.cast("int*", 0) gate.port_net_in_queue [port.idx] = ffi.cast("int*", 0) + gate.port_nets_c [port.idx] = ffi.cast("struct Net*", 0) end return gate diff --git a/sim/port.lua b/sim/port.lua index 39e911f..b6d1421 100644 --- a/sim/port.lua +++ b/sim/port.lua @@ -54,10 +54,12 @@ function Port.setgroup(port, group) Port.getgate(port).port_net_state [port.idx] = group.state Port.getgate(port).port_net_state_num[port.idx] = group.state_num Port.getgate(port).port_net_in_queue [port.idx] = group.in_queue + Port.getgate(port).port_nets_c [port.idx] = group.c else Port.getgate(port).port_net_state [port.idx] = ffi.cast("int*", 0) Port.getgate(port).port_net_state_num[port.idx] = ffi.cast("int*", 0) Port.getgate(port).port_net_in_queue [port.idx] = ffi.cast("int*", 0) + Port.getgate(port).port_nets_c [port.idx] = ffi.cast("struct Net*", 0) end end