This commit is contained in:
blueloveTH 2024-05-10 16:45:08 +08:00
parent 36b73e1ce7
commit 707a880c2e
3 changed files with 4 additions and 4 deletions

View File

@ -363,7 +363,7 @@ struct BinaryExpr: Expr{
Expr_ lhs; Expr_ lhs;
Expr_ rhs; Expr_ rhs;
bool is_compare() const override; bool is_compare() const override;
void _emit_compare(CodeEmitContext* ctx, pod_vector<int>& jmps); void _emit_compare(CodeEmitContext*, small_vector_2<int, 6>&);
void emit_(CodeEmitContext* ctx) override; void emit_(CodeEmitContext* ctx) override;
}; };

View File

@ -659,7 +659,7 @@ namespace pkpy{
} }
} }
void BinaryExpr::_emit_compare(CodeEmitContext* ctx, pod_vector<int>& jmps){ void BinaryExpr::_emit_compare(CodeEmitContext* ctx, small_vector_2<int, 6>& jmps){
if(lhs->is_compare()){ if(lhs->is_compare()){
static_cast<BinaryExpr*>(lhs.get())->_emit_compare(ctx, jmps); static_cast<BinaryExpr*>(lhs.get())->_emit_compare(ctx, jmps);
}else{ }else{
@ -683,7 +683,7 @@ namespace pkpy{
} }
void BinaryExpr::emit_(CodeEmitContext* ctx) { void BinaryExpr::emit_(CodeEmitContext* ctx) {
pod_vector<int> jmps; small_vector_2<int, 6> jmps;
if(is_compare() && lhs->is_compare()){ if(is_compare() && lhs->is_compare()){
// (a < b) < c // (a < b) < c
static_cast<BinaryExpr*>(lhs.get())->_emit_compare(ctx, jmps); static_cast<BinaryExpr*>(lhs.get())->_emit_compare(ctx, jmps);

View File

@ -715,7 +715,7 @@ Str VM::disassemble(CodeObject_ co){
return s + std::string(n - s.length(), ' '); return s + std::string(n - s.length(), ' ');
}; };
pod_vector<int> jumpTargets; std::vector<int> jumpTargets;
for(auto byte : co->codes){ for(auto byte : co->codes){
if(byte.op == OP_JUMP_ABSOLUTE || byte.op == OP_POP_JUMP_IF_FALSE || byte.op == OP_SHORTCUT_IF_FALSE_OR_POP || byte.op == OP_LOOP_CONTINUE){ if(byte.op == OP_JUMP_ABSOLUTE || byte.op == OP_POP_JUMP_IF_FALSE || byte.op == OP_SHORTCUT_IF_FALSE_OR_POP || byte.op == OP_LOOP_CONTINUE){
jumpTargets.push_back(byte.arg); jumpTargets.push_back(byte.arg);