aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-03-10 15:41:33 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2014-03-10 15:41:33 +0900
commit87db47d175cab854585c209d929628ce4ae25d8d (patch)
tree9096a2f2f1c1b0fad12a624e2312e263add828bd /native/jni/src
parent32326a9d7ad07f19dcdd2c0bfb578b2582eb2993 (diff)
downloadlatinime-87db47d175cab854585c209d929628ce4ae25d8d.tar.gz
latinime-87db47d175cab854585c209d929628ce4ae25d8d.tar.xz
latinime-87db47d175cab854585c209d929628ce4ae25d8d.zip
Use emplace_back to push DicNode to vector.
Before: (0) 2234.43 (0.71%) (1) 310083.71 (99.07%) (2) 626.88 (0.20%) (66) 0.26 (0.00%) Total 312995.33 (sum of others 312945.28) After (0) 2266.21 (0.79%) (1) 285422.05 (98.97%) (2) 642.62 (0.22%) (66) 0.19 (0.00%) Total 288384.35 (sum of others 288331.07) Change-Id: I5ab98076c54d147ff7ec2a29280859f4558e24d0
Diffstat (limited to 'native/jni/src')
-rw-r--r--native/jni/src/suggest/core/dicnode/dic_node_utils.cpp1
-rw-r--r--native/jni/src/suggest/core/dicnode/dic_node_vector.h15
2 files changed, 5 insertions, 11 deletions
diff --git a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
index a6ea68c29..48752f2cd 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
+++ b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
@@ -16,7 +16,6 @@
#include "suggest/core/dicnode/dic_node_utils.h"
-#include <algorithm>
#include <cstring>
#include "suggest/core/dicnode/dic_node.h"
diff --git a/native/jni/src/suggest/core/dicnode/dic_node_vector.h b/native/jni/src/suggest/core/dicnode/dic_node_vector.h
index 9364e7751..cb28e57d8 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node_vector.h
+++ b/native/jni/src/suggest/core/dicnode/dic_node_vector.h
@@ -32,10 +32,10 @@ class DicNodeVector {
#else
static const int DEFAULT_NODES_SIZE_FOR_OPTIMIZATION = 60;
#endif
- AK_FORCE_INLINE DicNodeVector() : mDicNodes(0), mLock(false), mEmptyNode() {}
+ AK_FORCE_INLINE DicNodeVector() : mDicNodes(), mLock(false) {}
// Specify the capacity of the vector
- AK_FORCE_INLINE DicNodeVector(const int size) : mDicNodes(0), mLock(false), mEmptyNode() {
+ AK_FORCE_INLINE DicNodeVector(const int size) : mDicNodes(), mLock(false) {
mDicNodes.reserve(size);
}
@@ -52,13 +52,9 @@ class DicNodeVector {
return static_cast<int>(mDicNodes.size());
}
- bool exceeds(const size_t limit) const {
- return mDicNodes.size() >= limit;
- }
-
void pushPassingChild(DicNode *dicNode) {
ASSERT(!mLock);
- mDicNodes.push_back(mEmptyNode);
+ mDicNodes.emplace_back();
mDicNodes.back().initAsPassingChild(dicNode);
}
@@ -67,7 +63,7 @@ class DicNodeVector {
const bool hasChildren, const bool isBlacklistedOrNotAWord,
const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) {
ASSERT(!mLock);
- mDicNodes.push_back(mEmptyNode);
+ mDicNodes.emplace_back();
mDicNodes.back().initAsChild(dicNode, ptNodePos, childrenPtNodeArrayPos, probability,
isTerminal, hasChildren, isBlacklistedOrNotAWord, mergedNodeCodePointCount,
mergedNodeCodePoints);
@@ -80,14 +76,13 @@ class DicNodeVector {
DicNode *front() {
ASSERT(1 <= static_cast<int>(mDicNodes.size()));
- return &mDicNodes[0];
+ return &mDicNodes.front();
}
private:
DISALLOW_COPY_AND_ASSIGN(DicNodeVector);
std::vector<DicNode> mDicNodes;
bool mLock;
- DicNode mEmptyNode;
};
} // namespace latinime
#endif // LATINIME_DIC_NODE_VECTOR_H