blueloveTH 3 лет назад
Родитель
Сommit
129675ac17
5 измененных файлов с 12 добавлено и 12 удалено
  1. 1 1
      src/compiler.h
  2. 1 1
      src/obj.h
  3. 8 8
      src/pocketpy.h
  4. 0 0
      src/str.h
  5. 2 2
      src/vm.h

+ 1 - 1
src/compiler.h

@@ -346,7 +346,7 @@ public:
             emitCode(OP_LOAD_CONST, getCode()->addConst(vm->PyStr(m[1].str())));
             emitCode(OP_CALL, 1);
             size++;
-            i = m.position() + m.length();
+            i = (int)(m.position() + m.length());
         }
         if (i < s.size()) {
             std::string literal = s.substr(i, s.size() - i);

+ 1 - 1
src/obj.h

@@ -43,7 +43,7 @@ struct _Range {
 
 struct _Slice {
     int start = 0;
-    int stop = 2147483647;  // container types always use int32 as index, no support for int64
+    int stop = 0x7fffffff; 
 
     void normalize(int len){
         if(start < 0) start += len;

+ 8 - 8
src/pocketpy.h

@@ -342,7 +342,7 @@ void __initializeBuiltinFunctions(VM* _vm) {
             return vm->PyStr(_self.u8_substr(s.start, s.stop));
         }
 
-        int _index = vm->PyInt_AS_C(args[1]);
+        int _index = (int)vm->PyInt_AS_C(args[1]);
         _index = vm->normalizedIndex(_index, _self.u8_length());
         return vm->PyStr(_self.u8_getitem(_index));
     });
@@ -440,7 +440,7 @@ void __initializeBuiltinFunctions(VM* _vm) {
     _vm->bindMethod("list", "insert", [](VM* vm, const pkpy::ArgList& args) {
         vm->__checkArgSize(args, 3, true);
         PyVarList& _self = vm->PyList_AS_C(args[0]);
-        int _index = vm->PyInt_AS_C(args[1]);
+        int _index = (int)vm->PyInt_AS_C(args[1]);
         if(_index < 0) _index += _self.size();
         if(_index < 0) _index = 0;
         if(_index > _self.size()) _index = _self.size();
@@ -488,19 +488,19 @@ void __initializeBuiltinFunctions(VM* _vm) {
             _Slice s = vm->PySlice_AS_C(args[1]);
             s.normalize(_self.size());
             PyVarList _new_list;
-            for(int i = s.start; i < s.stop; i++)
+            for(size_t i = s.start; i < s.stop; i++)
                 _new_list.push_back(_self[i]);
             return vm->PyList(_new_list);
         }
 
-        int _index = vm->PyInt_AS_C(args[1]);
+        int _index = (int)vm->PyInt_AS_C(args[1]);
         _index = vm->normalizedIndex(_index, _self.size());
         return _self[_index];
     });
 
     _vm->bindMethod("list", "__setitem__", [](VM* vm, const pkpy::ArgList& args) {
         PyVarList& _self = vm->PyList_AS_C(args[0]);
-        int _index = vm->PyInt_AS_C(args[1]);
+        int _index = (int)vm->PyInt_AS_C(args[1]);
         _index = vm->normalizedIndex(_index, _self.size());
         _self[_index] = args[2];
         return vm->None;
@@ -508,7 +508,7 @@ void __initializeBuiltinFunctions(VM* _vm) {
 
     _vm->bindMethod("list", "__delitem__", [](VM* vm, const pkpy::ArgList& args) {
         PyVarList& _self = vm->PyList_AS_C(args[0]);
-        int _index = vm->PyInt_AS_C(args[1]);
+        int _index = (int)vm->PyInt_AS_C(args[1]);
         _index = vm->normalizedIndex(_index, _self.size());
         _self.erase(_self.begin() + _index);
         return vm->None;
@@ -534,7 +534,7 @@ void __initializeBuiltinFunctions(VM* _vm) {
 
     _vm->bindMethod("tuple", "__getitem__", [](VM* vm, const pkpy::ArgList& args) {
         const PyVarList& _self = vm->PyTuple_AS_C(args[0]);
-        int _index = vm->PyInt_AS_C(args[1]);
+        int _index = (int)vm->PyInt_AS_C(args[1]);
         _index = vm->normalizedIndex(_index, _self.size());
         return _self[_index];
     });
@@ -626,7 +626,7 @@ void __addModuleSys(VM* vm){
 
     vm->bindFunc(mod, "setrecursionlimit", [](VM* vm, const pkpy::ArgList& args) {
         vm->__checkArgSize(args, 1);
-        vm->maxRecursionDepth = vm->PyInt_AS_C(args[0]);
+        vm->maxRecursionDepth = (int)vm->PyInt_AS_C(args[0]);
         return vm->None;
     });
 

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/str.h


+ 2 - 2
src/vm.h

@@ -312,8 +312,8 @@ protected:
                     PyVar stop = frame->popValue(this);
                     PyVar start = frame->popValue(this);
                     _Slice s;
-                    if(start != None) {__checkType(start, _tp_int); s.start = PyInt_AS_C(start);}
-                    if(stop != None) {__checkType(stop, _tp_int); s.stop = PyInt_AS_C(stop);}
+                    if(start != None) {__checkType(start, _tp_int); s.start = (int)PyInt_AS_C(start);}
+                    if(stop != None) {__checkType(stop, _tp_int); s.stop = (int)PyInt_AS_C(stop);}
                     frame->push(PySlice(s));
                 } break;
             case OP_IMPORT_NAME:

Некоторые файлы не были показаны из-за большого количества измененных файлов