Enhance performance and fix bug of the access array out of range.

This commit is contained in:
Mentalflow 2024-02-01 20:53:00 +08:00
parent 38a690e8ea
commit 05ebdfa562
Signed by: Mentalflow
GPG Key ID: 5AE68D4401A2EE71
3 changed files with 16 additions and 47 deletions

View File

@ -163,6 +163,8 @@ public:
void load_package(QList<uint8_t>& buf) { load_package(buf.constData(), buf.size()); }; void load_package(QList<uint8_t>& buf) { load_package(buf.constData(), buf.size()); };
void load_package(const uint8_t* buf, uint8_t length) void load_package(const uint8_t* buf, uint8_t length)
{ {
if (length < 7) // len < 7 means pkg is corrupted
return;
_packed_data.clear(); _packed_data.clear();
for (uint8_t i = 0; i < length; i++) { for (uint8_t i = 0; i < length; i++) {
_package.append(buf[i]); _package.append(buf[i]);

View File

@ -143,12 +143,8 @@ Item{
{ {
deny.push(ZigBeeParser.wait_queue[list.current_index]) deny.push(ZigBeeParser.wait_queue[list.current_index])
ZigBeeParser.deny_list = deny ZigBeeParser.deny_list = deny
for (var i = 0; i < ZigBeeParser.wait_queue.length; i++) data = ZigBeeParser.wait_queue
{ data.splice(list.current_index,1)
if (i === list.current_index)
continue
data.push(ZigBeeParser.wait_queue[i])
}
ZigBeeParser.wait_queue = data ZigBeeParser.wait_queue = data
break break
} }
@ -156,12 +152,8 @@ Item{
{ {
deny.push(ZigBeeParser.allow_list[list.current_index]) deny.push(ZigBeeParser.allow_list[list.current_index])
ZigBeeParser.deny_list = deny ZigBeeParser.deny_list = deny
for (let i = 0; i < ZigBeeParser.allow_list.length; i++) data = ZigBeeParser.allow_list
{ data.splice(list.current_index,1)
if (i === list.current_index)
continue
data.push(ZigBeeParser.allow_list[i])
}
ZigBeeParser.allow_list = data ZigBeeParser.allow_list = data
break break
} }
@ -170,13 +162,8 @@ Item{
let allow = ZigBeeParser.allow_list let allow = ZigBeeParser.allow_list
allow.push(ZigBeeParser.deny_list[list.current_index]) allow.push(ZigBeeParser.deny_list[list.current_index])
ZigBeeParser.allow_list = allow ZigBeeParser.allow_list = allow
let data = [] data = ZigBeeParser.deny_list
for (let i = 0; i < ZigBeeParser.deny_list.length; i++) data.splice(list.current_index,1)
{
if (i === list.current_index)
continue
data.push(ZigBeeParser.deny_list[i])
}
ZigBeeParser.deny_list = data ZigBeeParser.deny_list = data
break break
} }
@ -196,37 +183,22 @@ Item{
let allow = ZigBeeParser.allow_list let allow = ZigBeeParser.allow_list
allow.push(ZigBeeParser.wait_queue[list.current_index]) allow.push(ZigBeeParser.wait_queue[list.current_index])
ZigBeeParser.allow_list = allow ZigBeeParser.allow_list = allow
var data = [] var data = ZigBeeParser.wait_queue
for (var i = 0; i < ZigBeeParser.wait_queue.length; i++) data.splice(list.current_index,1)
{
if (i === list.current_index)
continue
data.push(ZigBeeParser.wait_queue[i])
}
ZigBeeParser.wait_queue = data ZigBeeParser.wait_queue = data
break break
} }
case 1: case 1:
{ {
let data = [] let data = ZigBeeParser.allow_list
for (let i = 0; i < ZigBeeParser.allow_list.length; i++) data.splice(list.current_index,1)
{
if (i === list.current_index)
continue
data.push(ZigBeeParser.allow_list[i])
}
ZigBeeParser.allow_list = data ZigBeeParser.allow_list = data
break break
} }
case 2: case 2:
{ {
let data = [] let data = ZigBeeParser.deny_list
for (let i = 0; i < ZigBeeParser.deny_list.length; i++) data.splice(list.current_index,1)
{
if (i === list.current_index)
continue
data.push(ZigBeeParser.deny_list[i])
}
ZigBeeParser.deny_list = data ZigBeeParser.deny_list = data
break break
} }

View File

@ -111,13 +111,8 @@ Item {
text: qsTr("删除") text: qsTr("删除")
enabled: list.has_selected enabled: list.has_selected
onClicked: { onClicked: {
let data = [] let data = ZigBeeParser.pre_hmac_verify_key
for (let i = 0; i < ZigBeeParser.pre_hmac_verify_key.length; i++) data.splice(list.current_index,1)
{
if (i === list.current_index)
continue
data.push(ZigBeeParser.pre_hmac_verify_key[i])
}
ZigBeeParser.pre_hmac_verify_key = data ZigBeeParser.pre_hmac_verify_key = data
} }
} }