You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pylucene-commits@lucene.apache.org by va...@apache.org on 2019/10/09 23:27:00 UTC
svn commit: r1868208 - /lucene/pylucene/trunk/jcc/jcc3/sources/JCCEnv.cpp
Author: vajda
Date: Wed Oct 9 23:27:00 2019
New Revision: 1868208
URL: http://svn.apache.org/viewvc?rev=1868208&view=rev
Log:
made the 1BYTE_KIND -> jchar case a bit faster
Modified:
lucene/pylucene/trunk/jcc/jcc3/sources/JCCEnv.cpp
Modified: lucene/pylucene/trunk/jcc/jcc3/sources/JCCEnv.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc3/sources/JCCEnv.cpp?rev=1868208&r1=1868207&r2=1868208&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc3/sources/JCCEnv.cpp (original)
+++ lucene/pylucene/trunk/jcc/jcc3/sources/JCCEnv.cpp Wed Oct 9 23:27:00 2019
@@ -1008,13 +1008,13 @@ jstring JCCEnv::fromPyString(PyObject *o
case PyUnicode_1BYTE_KIND: {
Py_ssize_t len = PyUnicode_GET_LENGTH(object);
Py_UCS1 *pchars = PyUnicode_1BYTE_DATA(object);
- std::vector<jchar> jchars;
+ std::vector<jchar> jchars((size_t) len, 0);
- jchars.reserve((size_t) len);
- for (int i = 0; i < len; ++i)
- jchars.push_back((jchar) pchars[i]);
+ for (std::vector<jchar>::iterator it = jchars.begin();
+ it != jchars.end(); ++it)
+ *it = (jchar) *(pchars++);
- return get_vm_env()->NewString(jchars.data(), jchars.size());
+ return get_vm_env()->NewString(jchars.data(), (size_t) len);
}
case PyUnicode_2BYTE_KIND: {