diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2014-11-17 05:08:39 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2014-11-17 05:08:39 +0100 | 
| commit | 162f54eca6b9c0dc2e4fe36bd2905190ba0185fa (patch) | |
| tree | 91734445aeb710f82a919b70dee84640abc093c2 | |
| parent | 33a266f4bae7b53ad12bd79293bcc1f11ae6d407 (diff) | |
[swfinterp] Implement bitand and pushshort operators
| -rw-r--r-- | youtube_dl/swfinterp.py | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/youtube_dl/swfinterp.py b/youtube_dl/swfinterp.py index 7369c94fc..fc704603a 100644 --- a/youtube_dl/swfinterp.py +++ b/youtube_dl/swfinterp.py @@ -451,6 +451,9 @@ class SWFInterpreter(object):                  elif opcode == 36:  # pushbyte                      v = _read_byte(coder)                      stack.append(v) +                elif opcode == 37:  # pushshort +                    v = u30() +                    stack.append(v)                  elif opcode == 38:  # pushtrue                      stack.append(True)                  elif opcode == 39:  # pushfalse @@ -712,6 +715,13 @@ class SWFInterpreter(object):                      value1 = stack.pop()                      res = value1 % value2                      stack.append(res) +                elif opcode == 168:  # bitand +                    value2 = stack.pop() +                    value1 = stack.pop() +                    assert isinstance(value1, int) +                    assert isinstance(value2, int) +                    res = value1 & value2 +                    stack.append(res)                  elif opcode == 171:  # equals                      value2 = stack.pop()                      value1 = stack.pop()  | 
