@@ -163,42 +163,7 @@ func (p *Proc) Addr() uintptr {
163163// (according to the semantics of the specific function being called) before consulting
164164// the error. The error will be guaranteed to contain windows.Errno.
165165func (p * Proc ) Call (a ... uintptr ) (r1 , r2 uintptr , lastErr error ) {
166- switch len (a ) {
167- case 0 :
168- return syscall .Syscall (p .Addr (), uintptr (len (a )), 0 , 0 , 0 )
169- case 1 :
170- return syscall .Syscall (p .Addr (), uintptr (len (a )), a [0 ], 0 , 0 )
171- case 2 :
172- return syscall .Syscall (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], 0 )
173- case 3 :
174- return syscall .Syscall (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ])
175- case 4 :
176- return syscall .Syscall6 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], 0 , 0 )
177- case 5 :
178- return syscall .Syscall6 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], 0 )
179- case 6 :
180- return syscall .Syscall6 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ])
181- case 7 :
182- return syscall .Syscall9 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], 0 , 0 )
183- case 8 :
184- return syscall .Syscall9 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], 0 )
185- case 9 :
186- return syscall .Syscall9 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], a [8 ])
187- case 10 :
188- return syscall .Syscall12 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], a [8 ], a [9 ], 0 , 0 )
189- case 11 :
190- return syscall .Syscall12 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], a [8 ], a [9 ], a [10 ], 0 )
191- case 12 :
192- return syscall .Syscall12 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], a [8 ], a [9 ], a [10 ], a [11 ])
193- case 13 :
194- return syscall .Syscall15 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], a [8 ], a [9 ], a [10 ], a [11 ], a [12 ], 0 , 0 )
195- case 14 :
196- return syscall .Syscall15 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], a [8 ], a [9 ], a [10 ], a [11 ], a [12 ], a [13 ], 0 )
197- case 15 :
198- return syscall .Syscall15 (p .Addr (), uintptr (len (a )), a [0 ], a [1 ], a [2 ], a [3 ], a [4 ], a [5 ], a [6 ], a [7 ], a [8 ], a [9 ], a [10 ], a [11 ], a [12 ], a [13 ], a [14 ])
199- default :
200- panic ("Call " + p .Name + " with too many arguments " + itoa (len (a )) + "." )
201- }
166+ return syscall .SyscallN (p .Addr (), a ... )
202167}
203168
204169// A LazyDLL implements access to a single DLL.
0 commit comments