clean value/mask/digitCount regardless of trigger
This commit is contained in:
parent
0aff9e1401
commit
eb2562c665
16
vcd_spans.c
16
vcd_spans.c
@ -116,10 +116,11 @@ int varNameSpan(vcd_parser_t* state, const unsigned char* p, const unsigned char
|
|||||||
|
|
||||||
int idSpan(vcd_parser_t* state, const unsigned char* p, const unsigned char* endp) {
|
int idSpan(vcd_parser_t* state, const unsigned char* p, const unsigned char* endp) {
|
||||||
napi_env env = state->napi_env;
|
napi_env env = state->napi_env;
|
||||||
|
const int valueWords = (state->digitCount >> 6) + 1;
|
||||||
|
uint64_t* value = state->value;
|
||||||
|
uint64_t* mask = state->mask;
|
||||||
if (stringEq((state->trigger), p, endp)) {
|
if (stringEq((state->trigger), p, endp)) {
|
||||||
const uint8_t command = state->command;
|
const uint8_t command = state->command;
|
||||||
uint64_t* value = state->value;
|
|
||||||
uint64_t* mask = state->mask;
|
|
||||||
if (command == 14) {
|
if (command == 14) {
|
||||||
value[0] = 0;
|
value[0] = 0;
|
||||||
mask[0] = 0;
|
mask[0] = 0;
|
||||||
@ -128,7 +129,6 @@ int idSpan(vcd_parser_t* state, const unsigned char* p, const unsigned char* end
|
|||||||
value[0] = 1;
|
value[0] = 1;
|
||||||
mask[0] = 0;
|
mask[0] = 0;
|
||||||
}
|
}
|
||||||
const int valueWords = (state->digitCount >> 6) + 1;
|
|
||||||
napi_value undefined, eventName, aTime, aCommand, aValue, aMask, return_val;
|
napi_value undefined, eventName, aTime, aCommand, aValue, aMask, return_val;
|
||||||
ASSERT(undefined, napi_get_undefined(env, &undefined))
|
ASSERT(undefined, napi_get_undefined(env, &undefined))
|
||||||
ASSERT(eventName, napi_create_string_latin1(env, (char*)p, (endp - p - 1), &eventName))
|
ASSERT(eventName, napi_create_string_latin1(env, (char*)p, (endp - p - 1), &eventName))
|
||||||
@ -138,12 +138,12 @@ int idSpan(vcd_parser_t* state, const unsigned char* p, const unsigned char* end
|
|||||||
ASSERT(aMask, napi_create_bigint_words(env, 0, valueWords, mask, &aMask))
|
ASSERT(aMask, napi_create_bigint_words(env, 0, valueWords, mask, &aMask))
|
||||||
napi_value* argv[] = {&eventName, &aTime, &aCommand, &aValue, &aMask};
|
napi_value* argv[] = {&eventName, &aTime, &aCommand, &aValue, &aMask};
|
||||||
ASSERT(state->triee, napi_call_function(env, undefined, state->triee, 5, *argv, &return_val))
|
ASSERT(state->triee, napi_call_function(env, undefined, state->triee, 5, *argv, &return_val))
|
||||||
for (int i = 0; i < valueWords; i++) {
|
|
||||||
value[i] = 0;
|
|
||||||
mask[i] = 0;
|
|
||||||
}
|
|
||||||
state->digitCount = 0;
|
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < valueWords; i++) {
|
||||||
|
value[i] = 0;
|
||||||
|
mask[i] = 0;
|
||||||
|
}
|
||||||
|
state->digitCount = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user