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: {