improve type conversion QByteArray -> CL array (intended for binary data only); bump version;

This commit is contained in:
pls.153 2023-05-19 17:14:25 +02:00
parent b2a4a6812f
commit 6594582b72
4 changed files with 20 additions and 23 deletions

View file

@ -247,17 +247,14 @@ cl_object from_cstring(const QByteArray& s) {
return l_s;
}
static cl_object make_vector() {
STATIC_SYMBOL_PKG (s_make_vector, "%MAKE-VECTOR", "QML") // see 'ini.lisp'
cl_object l_vector = cl_funcall(1, s_make_vector);
return l_vector;
}
cl_object from_qbytearray(const QByteArray& ba) {
cl_object l_vec = make_vector();
for (int i = 0; i < ba.size(); i++) {
cl_vector_push_extend(2, ecl_make_fixnum(ba.at(i)), l_vec);
STATIC_SYMBOL_PKG (s_make_byte_vector, "%MAKE-BYTE-VECTOR", "QML") // see 'ini.lisp'
cl_object l_list = Cnil;
for (QChar b : ba) {
l_list = CONS(ecl_make_fixnum(static_cast<unsigned char>(b.toLatin1())),
l_list);
}
cl_object l_vec = cl_funcall(2, s_make_byte_vector, cl_nreverse(l_list));
return l_vec;
}