mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 03:20:18 +00:00
some fix
This commit is contained in:
parent
b1ee038583
commit
120d1dfb27
@ -18,7 +18,7 @@
|
|||||||
#include <random>
|
#include <random>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
|
|
||||||
#define PK_VERSION "1.4.0"
|
#define PK_VERSION "1.4.1"
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "export.h"
|
#include "export.h"
|
||||||
@ -115,13 +115,6 @@ union BitsCvtImpl<4>{
|
|||||||
|
|
||||||
BitsCvtImpl(NumberTraits<4>::float_t val): _float(val) {}
|
BitsCvtImpl(NumberTraits<4>::float_t val): _float(val) {}
|
||||||
BitsCvtImpl(NumberTraits<4>::int_t val): _int(val) {}
|
BitsCvtImpl(NumberTraits<4>::int_t val): _int(val) {}
|
||||||
|
|
||||||
// void print(){
|
|
||||||
// std::string s = std::bitset<32>(_int).to_string();
|
|
||||||
// std::cout << s.substr(0, 1) << '|';
|
|
||||||
// std::cout << s.substr(1, 8) << '|';
|
|
||||||
// std::cout << s.substr(9) << std::endl;
|
|
||||||
// }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@ -146,13 +139,6 @@ union BitsCvtImpl<8>{
|
|||||||
|
|
||||||
BitsCvtImpl(NumberTraits<8>::float_t val): _float(val) {}
|
BitsCvtImpl(NumberTraits<8>::float_t val): _float(val) {}
|
||||||
BitsCvtImpl(NumberTraits<8>::int_t val): _int(val) {}
|
BitsCvtImpl(NumberTraits<8>::int_t val): _int(val) {}
|
||||||
|
|
||||||
// void print(){
|
|
||||||
// std::string s = std::bitset<64>(_int).to_string();
|
|
||||||
// std::cout << s.substr(0, 1) << '|';
|
|
||||||
// std::cout << s.substr(1, 11) << '|';
|
|
||||||
// std::cout << s.substr(12) << std::endl;
|
|
||||||
// }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
using BitsCvt = BitsCvtImpl<sizeof(void*)>;
|
using BitsCvt = BitsCvtImpl<sizeof(void*)>;
|
||||||
|
@ -29,7 +29,7 @@ struct SourceData {
|
|||||||
Str filename;
|
Str filename;
|
||||||
CompileMode mode;
|
CompileMode mode;
|
||||||
|
|
||||||
std::string source; // assume '\0' terminated
|
Str source;
|
||||||
std::vector<const char*> line_starts;
|
std::vector<const char*> line_starts;
|
||||||
|
|
||||||
SourceData(const Str& source, const Str& filename, CompileMode mode);
|
SourceData(const Str& source, const Str& filename, CompileMode mode);
|
||||||
|
@ -87,7 +87,7 @@ PK_EXPORT bool pkpy_vectorcall(pkpy_vm*, int argc);
|
|||||||
|
|
||||||
/* Special APIs */
|
/* Special APIs */
|
||||||
PK_EXPORT void pkpy_free(void* p);
|
PK_EXPORT void pkpy_free(void* p);
|
||||||
PK_EXPORT pkpy_CString pkpy_string(const char* s);
|
#define pkpy_string(__s) (__s)
|
||||||
PK_EXPORT pkpy_CName pkpy_name(const char* s);
|
PK_EXPORT pkpy_CName pkpy_name(const char* s);
|
||||||
PK_EXPORT pkpy_CString pkpy_name_to_string(pkpy_CName name);
|
PK_EXPORT pkpy_CString pkpy_name_to_string(pkpy_CName name);
|
||||||
PK_EXPORT void pkpy_set_output_handler(pkpy_vm*, pkpy_COutputHandler handler);
|
PK_EXPORT void pkpy_set_output_handler(pkpy_vm*, pkpy_COutputHandler handler);
|
||||||
|
@ -582,7 +582,7 @@ inline const char* _py_cast<const char*>(VM* vm, PyObject* obj){
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline PyObject* py_var(VM* vm, std::string val){
|
inline PyObject* py_var(VM* vm, std::string val){
|
||||||
return VAR(Str(std::move(val)));
|
return VAR(Str(val));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline PyObject* py_var(VM* vm, std::string_view val){
|
inline PyObject* py_var(VM* vm, std::string_view val){
|
||||||
|
@ -12,8 +12,7 @@ namespace pkpy{
|
|||||||
if(source[index] != '\r') ss << source[index];
|
if(source[index] != '\r') ss << source[index];
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
this->source = ss.str().str();
|
this->source = ss.str();
|
||||||
|
|
||||||
line_starts.push_back(this->source.c_str());
|
line_starts.push_back(this->source.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -546,10 +546,6 @@ void pkpy_free(void* p){
|
|||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
pkpy_CString pkpy_string(const char* value){
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
pkpy_CName pkpy_name(const char* name){
|
pkpy_CName pkpy_name(const char* name){
|
||||||
return StrName(name).index;
|
return StrName(name).index;
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,7 @@ int utf8len(unsigned char c, bool suppress){
|
|||||||
for(int i=0; i<size; i++){
|
for(int i=0; i<size; i++){
|
||||||
if(!isascii(data[i])){ is_ascii = false; break; }
|
if(!isascii(data[i])){ is_ascii = false; break; }
|
||||||
}
|
}
|
||||||
|
data[size] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
Str::Str(const Str& other): size(other.size), is_ascii(other.is_ascii) {
|
Str::Str(const Str& other): size(other.size), is_ascii(other.is_ascii) {
|
||||||
@ -101,6 +102,7 @@ int utf8len(unsigned char c, bool suppress){
|
|||||||
is_ascii = other.is_ascii;
|
is_ascii = other.is_ascii;
|
||||||
PK_STR_ALLOCATE()
|
PK_STR_ALLOCATE()
|
||||||
memcpy(data, other.data, size);
|
memcpy(data, other.data, size);
|
||||||
|
data[size] = '\0';
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,6 +110,7 @@ int utf8len(unsigned char c, bool suppress){
|
|||||||
Str ret(size + other.size, is_ascii && other.is_ascii);
|
Str ret(size + other.size, is_ascii && other.is_ascii);
|
||||||
memcpy(ret.data, data, size);
|
memcpy(ret.data, data, size);
|
||||||
memcpy(ret.data + size, other.data, other.size);
|
memcpy(ret.data + size, other.data, other.size);
|
||||||
|
ret.data[ret.size] = '\0';
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,6 +174,7 @@ int utf8len(unsigned char c, bool suppress){
|
|||||||
Str Str::substr(int start, int len) const {
|
Str Str::substr(int start, int len) const {
|
||||||
Str ret(len, is_ascii);
|
Str ret(len, is_ascii);
|
||||||
memcpy(ret.data, data + start, len);
|
memcpy(ret.data, data + start, len);
|
||||||
|
ret.data[len] = '\0';
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -432,7 +436,6 @@ int utf8len(unsigned char c, bool suppress){
|
|||||||
}
|
}
|
||||||
|
|
||||||
Str SStream::str(){
|
Str SStream::str(){
|
||||||
buffer.push_back('\0');
|
|
||||||
// after this call, the buffer is no longer valid
|
// after this call, the buffer is no longer valid
|
||||||
return Str(buffer.detach());
|
return Str(buffer.detach());
|
||||||
}
|
}
|
||||||
|
@ -223,11 +223,6 @@ void pkpy_free(void* p) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pkpy_CString pkpy_string(const char* s) {
|
|
||||||
pkpy_CString returnValue;
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
pkpy_CName pkpy_name(const char* s) {
|
pkpy_CName pkpy_name(const char* s) {
|
||||||
pkpy_CName returnValue;
|
pkpy_CName returnValue;
|
||||||
return returnValue;
|
return returnValue;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user