diff options
Diffstat (limited to 'youtube_dl/swfinterp.py')
-rw-r--r-- | youtube_dl/swfinterp.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/youtube_dl/swfinterp.py b/youtube_dl/swfinterp.py index e5deb2c14..7c0ee1e61 100644 --- a/youtube_dl/swfinterp.py +++ b/youtube_dl/swfinterp.py @@ -213,6 +213,10 @@ class SWFInterpreter(object): u30() # namespace_idx name_idx = u30() self.multinames.append(self.constant_strings[name_idx]) + elif kind == 0x09: + name_idx = u30() + u30() + self.multinames.append(self.constant_strings[name_idx]) else: self.multinames.append(_Multiname(kind)) for _c2 in range(MULTINAME_SIZES[kind]): @@ -557,6 +561,11 @@ class SWFInterpreter(object): obj = stack.pop() assert isinstance(obj, list) stack.append(len(obj)) + elif isinstance(pname, compat_str): # Member access + obj = stack.pop() + assert isinstance(obj, (dict, _ScopeDict)), \ + 'Accessing member on %r' % obj + stack.append(obj[pname]) else: # Assume attribute access idx = stack.pop() assert isinstance(idx, int) |