blueloveTH 3 rokov pred
rodič
commit
ce0ba313d1
2 zmenil súbory, kde vykonal 7 pridanie a 6 odobranie
  1. 2 2
      src/codeobject.h
  2. 5 4
      src/vm.h

+ 2 - 2
src/codeobject.h

@@ -65,6 +65,8 @@ struct CodeObject {
     std::vector<CodeBlock> blocks = { CodeBlock{NO_BLOCK, -1} };
     emhash8::HashMap<Str, int> labels;
 
+    void optimize(VM* vm);
+
     bool add_label(const Str& label){
         if(labels.contains(label)) return false;
         labels[label] = codes.size();
@@ -86,8 +88,6 @@ struct CodeObject {
         return consts.size() - 1;
     }
 
-    void optimize(VM* vm);
-
     /************************************************/
     int _curr_block_i = 0;
     bool _rvalue = false;

+ 5 - 4
src/vm.h

@@ -1129,9 +1129,10 @@ PyVar pkpy::NativeFunc::operator()(VM* vm, const pkpy::Args& args) const{
 
 void CodeObject::optimize(VM* vm){
     for(int i=1; i<codes.size(); i++){
-    if(codes[i].op == OP_UNARY_NEGATIVE && codes[i-1].op == OP_LOAD_CONST){
-        codes[i].op = OP_NO_OP;
-        int pos = codes[i-1].arg;
-        consts[pos] = vm->num_negated(consts[pos]);
+        if(codes[i].op == OP_UNARY_NEGATIVE && codes[i-1].op == OP_LOAD_CONST){
+            codes[i].op = OP_NO_OP;
+            int pos = codes[i-1].arg;
+            consts[pos] = vm->num_negated(consts[pos]);
+        }
     }
 }