Skip to content

Commit

Permalink
more fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
danielhrisca committed Jun 25, 2024
1 parent db717ca commit dcec26e
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 22 deletions.
4 changes: 4 additions & 0 deletions src/asammdf/blocks/cutils.c
Original file line number Diff line number Diff line change
Expand Up @@ -1382,8 +1382,12 @@ static PyObject *data_block_from_arrays(PyObject *self, PyObject *args)
write_pos += step;
}
}

free(block_info);
}

data_blocks = item = bytes = itemsize = NULL;

return out;
}
}
Expand Down
41 changes: 19 additions & 22 deletions src/asammdf/blocks/mdf_v4.py
Original file line number Diff line number Diff line change
Expand Up @@ -2857,7 +2857,6 @@ def append(

gp_sig_types.append(v4c.SIGNAL_TYPE_SCALAR)

c = 0
for signal in signals:
sig = signal
samples = sig.samples
Expand Down Expand Up @@ -3000,7 +2999,6 @@ def append(
gp_dep.append(None)

else:
c += 1
byte_size = s_size // 8 or 1
data_block_addr = 0

Expand Down Expand Up @@ -3360,14 +3358,13 @@ def append(
"flags": 0,
}

if invalidation_bytes_nr:
if signal.invalidation_bits is not None:
if (origin := signal.invalidation_bits.origin) == InvalidationArray.ORIGIN_UNKNOWN:
inval_bits[origin].append(signal.invalidation_bits)
else:
inval_bits[origin] = signal.invalidation_bits
kwargs["flags"] = v4c.FLAG_CN_INVALIDATION_PRESENT
kwargs["pos_invalidation_bit"] = origin
if invalidation_bytes_nr and signal.invalidation_bits is not None:
if (origin := signal.invalidation_bits.origin) == InvalidationArray.ORIGIN_UNKNOWN:
inval_bits[origin].append(signal.invalidation_bits)
else:
inval_bits[origin] = signal.invalidation_bits
kwargs["flags"] = v4c.FLAG_CN_INVALIDATION_PRESENT
kwargs["pos_invalidation_bit"] = origin

ch = Channel(**kwargs)
ch.name = name
Expand Down Expand Up @@ -3446,14 +3443,13 @@ def append(
"flags": 0,
}

if invalidation_bytes_nr:
if signal.invalidation_bits is not None:
if (origin := signal.invalidation_bits.origin) == InvalidationArray.ORIGIN_UNKNOWN:
inval_bits[origin].append(signal.invalidation_bits)
else:
inval_bits[origin] = signal.invalidation_bits
kwargs["flags"] = v4c.FLAG_CN_INVALIDATION_PRESENT
kwargs["pos_invalidation_bit"] = origin
if invalidation_bytes_nr and signal.invalidation_bits is not None:
if (origin := signal.invalidation_bits.origin) == InvalidationArray.ORIGIN_UNKNOWN:
inval_bits[origin].append(signal.invalidation_bits)
else:
inval_bits[origin] = signal.invalidation_bits
kwargs["flags"] = v4c.FLAG_CN_INVALIDATION_PRESENT
kwargs["pos_invalidation_bit"] = origin

ch = Channel(**kwargs)
ch.name = name
Expand Down Expand Up @@ -5872,8 +5868,8 @@ def extend(self, index: int, signals: list[tuple[NDArray[Any], NDArray[Any] | No
for dim in shape:
size *= dim

if not signal.flags["C_CONTIGUOUS"]:
signal = np.ascontiguousarray(signal)
if not samples.flags["C_CONTIGUOUS"]:
samples = np.ascontiguousarray(samples)

fields.append((samples, size))

Expand All @@ -5891,8 +5887,8 @@ def extend(self, index: int, signals: list[tuple[NDArray[Any], NDArray[Any] | No
for dim in shape:
size *= dim

if not signal.flags["C_CONTIGUOUS"]:
signal = np.ascontiguousarray(signal)
if not samples.flags["C_CONTIGUOUS"]:
samples = np.ascontiguousarray(samples)

fields.append((samples, size))

Expand Down Expand Up @@ -5981,6 +5977,7 @@ def extend(self, index: int, signals: list[tuple[NDArray[Any], NDArray[Any] | No
else:
inval_bits[origin] = invalidation_bits

# print('inval')
if invalidation_bytes_nr:
unknown_origin = inval_bits.pop(InvalidationArray.ORIGIN_UNKNOWN)

Expand Down

0 comments on commit dcec26e

Please sign in to comment.