Skip to content

Commit b03ecaf

Browse files
committed
Remove temporary objects in the code
1 parent 681d3e3 commit b03ecaf

3 files changed

Lines changed: 23 additions & 18 deletions

File tree

Core/SDSSECQSClient.cpp

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -126,28 +126,32 @@ vector<int> SDSSECQSClient::search(int count, ...) {
126126
vector<GT> token_i;
127127
// compute z=Fp(K_Z, w||i)
128128
Zr z = Fp(w_i, sizeof(w_i), K_Z);
129+
token_i.reserve(xterms.size());
129130
for (const string &xterm: xterms) {
130131
token_i.emplace_back((*gpp) ^ (z * Fp((uint8_t *) xterm.c_str(), xterm.size(), K_X)
131132
* Fp((uint8_t *) sterm.c_str(), sterm.size(), K_z)));
132-
// if xterm is never inserted, return an empty vector
133-
if (CT.find(xterm) == CT.end()) {
134-
return {};
135-
}
136-
vector<Zr> zx_i;
137-
for (int k = 0; k <= CT[xterm]; k++) {
138-
// w_j=w||j
139-
uint8_t w_j[xterm.size() + sizeof(int)];
140-
// reset the buffer
141-
memset(w_j, 0, xterm.size() + sizeof(int));
142-
memcpy(w_j, xterm.c_str(), xterm.size());
143-
memcpy(w_j + xterm.size(), (uint8_t *) &k, sizeof(int));
144-
zx_i.emplace_back(Fp(w_j, sizeof(w_j), K_x)
145-
* Fp((uint8_t *) sterm.c_str(), sterm.size(), K_z));
146-
}
147-
zxtoken_list.emplace_back(zx_i);
148133
}
149134
wxtoken_list.emplace_back(token_i);
150135
}
136+
137+
for (const string &xterm: xterms) {
138+
// if xterm is never inserted, return an empty vector
139+
if (CT.find(xterm) == CT.end()) {
140+
return {};
141+
}
142+
vector<Zr> zx_i;
143+
for (int k = 0; k <= CT[xterm]; k++) {
144+
// w_j=w||j
145+
uint8_t w_j[xterm.size() + sizeof(int)];
146+
// reset the buffer
147+
memset(w_j, 0, xterm.size() + sizeof(int));
148+
memcpy(w_j, xterm.c_str(), xterm.size());
149+
memcpy(w_j + xterm.size(), (uint8_t *) &k, sizeof(int));
150+
zx_i.emplace_back(Fp(w_j, sizeof(w_j), K_x)
151+
* Fp((uint8_t *) sterm.c_str(), sterm.size(), K_z));
152+
}
153+
zxtoken_list.emplace_back(zx_i);
154+
}
151155
}
152156
va_end(keyword_list);
153157

Core/SSEClientHandler.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ vector<string> SSEClientHandler::search(const string& keyword) {
7777
token);
7878
// search all deleted positions
7979
vector<long> bf_pos;
80+
bf_pos.reserve(GGM_SIZE);
8081
for (int i = 0; i < GGM_SIZE; ++i) {
8182
bf_pos.emplace_back(i);
8283
}
@@ -89,7 +90,7 @@ vector<string> SSEClientHandler::search(const string& keyword) {
8990
vector<GGMNode> node_list;
9091
node_list.reserve(remain_pos.size());
9192
for (long pos : remain_pos) {
92-
node_list.emplace_back(GGMNode(pos, tree->get_level()));
93+
node_list.emplace_back(pos, tree->get_level());
9394
}
9495
vector<GGMNode> remain_node = tree->min_coverage(node_list);
9596
// compute the key set and send to the server

Core/SSEServerHandler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ vector<string> SSEServerHandler::search(uint8_t *token, const vector<GGMNode>& n
4545
derive_key, (uint8_t *) ciphertext_list[i].c_str(),
4646
res);
4747
if(size > 0) {
48-
res_list.emplace_back(string(reinterpret_cast<const char *>(res), ciphertext_list[i].size() - AES_BLOCK_SIZE));
48+
res_list.emplace_back(reinterpret_cast<const char *>(res), ciphertext_list[i].size() - AES_BLOCK_SIZE);
4949
}
5050
break;
5151
}

0 commit comments

Comments
 (0)