| 
						
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1,5 +1,32 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				# definition of classes used by ruby-autogen
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				$sizeof_ptr = case RUBY_PLATFORM
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              when /x86_64|x64/i; 64
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              else 32
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def self.memory_read_int64(addr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        (memory_read_int32(addr) & 0xffffffff) + (memory_read_int32(addr+4) << 32)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def self.memory_write_int64(addr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        memory_write_int32(addr, v & 0xffffffff) ; memory_write_int32(addr+4, v>>32)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if $sizeof_ptr == 64
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        def self.memory_read_ptr(addr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            memory_read_int64(addr) & 0xffffffff_ffffffff
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        def self.memory_write_ptr(addr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            memory_write_int64(addr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        def self.memory_read_ptr(addr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            memory_read_int32(addr) & 0xffffffff
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        def self.memory_write_ptr(addr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            memory_write_int32(addr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    module MemHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        INSPECT_SIZE_LIMIT=16384
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        class MemStruct
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -62,6 +89,8 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    case tglen
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 1; StlVector8.new(tg)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 2; StlVector16.new(tg)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 4; StlVector32.new(tg)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 8; StlVector64.new(tg)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    else StlVector32.new(tg)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                end
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -207,10 +236,10 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _get
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                v = case @_bits
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 64; DFHack.memory_read_int64(@_memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 32; DFHack.memory_read_int32(@_memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 16; DFHack.memory_read_int16(@_memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 8;  DFHack.memory_read_int8( @_memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    when 64;(DFHack.memory_read_int32(@_memaddr) & 0xffffffff) + (DFHack.memory_read_int32(@_memaddr+4) << 32)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                v &= (1 << @_bits) - 1 if not @_signed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                v = @_enum.sym(v) if @_enum
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -220,10 +249,10 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _set(v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                v = @_enum.int(v) if @_enum
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case @_bits
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when 64; DFHack.memory_write_int64(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when 32; DFHack.memory_write_int32(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when 16; DFHack.memory_write_int16(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when 8;  DFHack.memory_write_int8( @_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when 64; DFHack.memory_write_int32(@_memaddr, v & 0xffffffff) ; DFHack.memory_write_int32(@memaddr+4, v>>32)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -299,11 +328,11 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _getp
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_read_int32(@_memaddr) & 0xffffffff
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_read_ptr(@_memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _setp(v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				               DFHack.memory_write_int32(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_write_ptr(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _get
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -316,8 +345,8 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            # XXX shaky...
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _set(v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case v
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when Pointer;   DFHack.memory_write_int32(@_memaddr, v._getp)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when MemStruct; DFHack.memory_write_int32(@_memaddr, v._memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when Pointer;   DFHack.memory_write_ptr(@_memaddr, v._getp)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when MemStruct; DFHack.memory_write_ptr(@_memaddr, v._memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when Integer
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    if @_tg and @_tg.kind_of?(MemHack::Number)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        if _getp == 0
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -325,9 +354,9 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        @_tg._at(_getp)._set(v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        DFHack.memory_write_int32(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        DFHack.memory_write_ptr(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when nil;       DFHack.memory_write_int32(@_memaddr, 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when nil;       DFHack.memory_write_ptr(@_memaddr, 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                else @_tg._at(_getp)._set(v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -353,7 +382,7 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _getp(i=0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                delta = (i != 0 ? i*@_tglen : 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                (DFHack.memory_read_int32(@_memaddr) & 0xffffffff) + delta
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_read_ptr(@_memaddr) + delta
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _get
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -364,10 +393,10 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def _set(v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                case v
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when Pointer;   DFHack.memory_write_int32(@_memaddr, v._getp)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when MemStruct; DFHack.memory_write_int32(@_memaddr, v._memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when Integer;   DFHack.memory_write_int32(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when nil;       DFHack.memory_write_int32(@_memaddr, 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when Pointer;   DFHack.memory_write_ptr(@_memaddr, v._getp)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when MemStruct; DFHack.memory_write_ptr(@_memaddr, v._memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when Integer;   DFHack.memory_write_ptr(@_memaddr, v)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                when nil;       DFHack.memory_write_ptr(@_memaddr, 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                else raise "cannot PointerAry._set(#{v.inspect})"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -557,6 +586,20 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        class StlVector64 < StlVector32
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def length
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_vector64_length(@_memaddr)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def valueptr_at(idx)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_vector64_ptrat(@_memaddr, idx)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def insert_at(idx, val)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_vector64_insertat(@_memaddr, idx, val)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def delete_at(idx)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_vector64_deleteat(@_memaddr, idx)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        class StlVector16 < StlVector32
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def length
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                DFHack.memory_vector16_length(@_memaddr)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -733,8 +776,8 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                @_tg = tg
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_ptr, 0) { number 32, false }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_length, 4) { number 16, false }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_ptr, 0) { number $sizeof_ptr, false }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_length, $sizeof_ptr/8) { number 16, false }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def length ; _length ; end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def size ; _length ; end
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -769,8 +812,8 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_ptr, 0) { pointer }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_prev, 4) { pointer }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_next, 8) { pointer }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_prev, $sizeof_ptr/8) { pointer }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            field(:_next, 2*$sizeof_ptr/8) { pointer }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            def item
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                # With the current xml structure, currently _tg designate
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -946,7 +989,7 @@ module DFHack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def self.vmethod_call(obj, voff, a0=0, a1=0, a2=0, a3=0, a4=0, a5=0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        this = obj._memaddr
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        vt = df.get_vtable_ptr(this)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        fptr = df.memory_read_int32(vt + voff) & 0xffffffff
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        fptr = df.memory_read_ptr(vt + voff)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        vmethod_do_call(this, fptr, vmethod_arg(a0), vmethod_arg(a1), vmethod_arg(a2),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        vmethod_arg(a3), vmethod_arg(a4), vmethod_arg(a5))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |