mirror of
https://github.com/mozilla/DeepSpeech.git
synced 2025-10-26 11:19:39 +00:00
Address review comments
This commit is contained in:
parent
34314767f7
commit
b8ebf9011b
@ -47,25 +47,25 @@ public:
|
||||
|
||||
int deserialize(const char* buffer, const int buffer_size) {
|
||||
int offset = 0;
|
||||
if (buffer_size - offset < sizeof(int16_t)) {
|
||||
if (buffer_size - offset < sizeof(uint16_t)) {
|
||||
return 1;
|
||||
}
|
||||
int16_t size = *(int16_t*)(buffer + offset);
|
||||
offset += sizeof(int16_t);
|
||||
uint16_t size = *(uint16_t*)(buffer + offset);
|
||||
offset += sizeof(uint16_t);
|
||||
size_ = size;
|
||||
|
||||
for (int i = 0; i < size; ++i) {
|
||||
if (buffer_size - offset < sizeof(int16_t)) {
|
||||
if (buffer_size - offset < sizeof(uint16_t)) {
|
||||
return 1;
|
||||
}
|
||||
int16_t label = *(int16_t*)(buffer + offset);
|
||||
offset += sizeof(int16_t);
|
||||
uint16_t label = *(uint16_t*)(buffer + offset);
|
||||
offset += sizeof(uint16_t);
|
||||
|
||||
if (buffer_size - offset < sizeof(int16_t)) {
|
||||
if (buffer_size - offset < sizeof(uint16_t)) {
|
||||
return 1;
|
||||
}
|
||||
int16_t val_len = *(int16_t*)(buffer + offset);
|
||||
offset += sizeof(int16_t);
|
||||
uint16_t val_len = *(uint16_t*)(buffer + offset);
|
||||
offset += sizeof(uint16_t);
|
||||
|
||||
if (buffer_size - offset < val_len) {
|
||||
return 1;
|
||||
|
||||
25
util/text.py
25
util/text.py
@ -55,33 +55,12 @@ class Alphabet(object):
|
||||
|
||||
def serialize(self):
|
||||
res = bytearray()
|
||||
res += struct.pack('<h', self._size)
|
||||
res += struct.pack('<H', self._size)
|
||||
for key, value in self._label_to_str.items():
|
||||
value = value.encode('utf-8')
|
||||
res += struct.pack('<hh{}s'.format(len(value)), key, len(value), value)
|
||||
res += struct.pack('<HH{}s'.format(len(value)), key, len(value), value)
|
||||
return bytes(res)
|
||||
|
||||
@staticmethod
|
||||
def deserialize(buf):
|
||||
#pylint: disable=protected-access
|
||||
res = Alphabet(config_file=None)
|
||||
|
||||
offset = 0
|
||||
def unpack_and_fwd(fmt, buf):
|
||||
nonlocal offset
|
||||
result = struct.unpack_from(fmt, buf, offset)
|
||||
offset += struct.calcsize(fmt)
|
||||
return result
|
||||
|
||||
res.size = unpack_and_fwd('<h', buf)[0]
|
||||
for _ in range(res.size):
|
||||
label, val_len = unpack_and_fwd('<hh', buf)
|
||||
val = unpack_and_fwd('<{}s'.format(val_len), buf)[0].decode('utf-8')
|
||||
res._label_to_str[label] = val
|
||||
res._str_to_label[val] = label
|
||||
|
||||
return res
|
||||
|
||||
def size(self):
|
||||
return self._size
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user