From 1ae10a006e2acd601d14112e6f0f91c030d2cd08 Mon Sep 17 00:00:00 2001 From: Motomu Utsumi Date: Thu, 17 Jul 2025 10:45:19 +0900 Subject: [PATCH] NetBpfLoad: less copies This is a cherry-pick of ag/34620709 to NetBpfLoad Test: TH Flag: EXEMPT no-op Bug: 428792764 Change-Id: Ia5aaa30cab71a2051b6c787824798958f2dee3f5 --- bpf/loader/NetBpfLoad.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/bpf/loader/NetBpfLoad.cpp b/bpf/loader/NetBpfLoad.cpp index 10b0601cb2..130fbc0dec 100644 --- a/bpf/loader/NetBpfLoad.cpp +++ b/bpf/loader/NetBpfLoad.cpp @@ -349,15 +349,12 @@ static int readSectionByName(const char* name, ifstream& elfFile, vector& if (!secname) continue; if (!strcmp(secname, name)) { - vector dataTmp; - dataTmp.resize(shTable[i].sh_size); - elfFile.seekg(shTable[i].sh_offset); if (elfFile.fail()) return -1; - if (!elfFile.read((char*)dataTmp.data(), shTable[i].sh_size)) return -1; + data.resize(shTable[i].sh_size); + if (!elfFile.read(data.data(), shTable[i].sh_size)) return -1; - data = dataTmp; return 0; } } @@ -397,15 +394,12 @@ static int readSectionByType(ifstream& elfFile, int type, vector& data) { for (int i = 0; i < (int)shTable.size(); i++) { if ((int)shTable[i].sh_type != type) continue; - vector dataTmp; - dataTmp.resize(shTable[i].sh_size); - elfFile.seekg(shTable[i].sh_offset); if (elfFile.fail()) return -1; - if (!elfFile.read((char*)dataTmp.data(), shTable[i].sh_size)) return -1; + data.resize(shTable[i].sh_size); + if (!elfFile.read(data.data(), shTable[i].sh_size)) return -1; - data = dataTmp; return 0; } return -2;