@@ -127,7 +127,7 @@ func (arguments Arguments) Copy(v any, values []any) error {
127
127
return arguments .copyAtomic (v , values [0 ])
128
128
}
129
129
130
- // unpackAtomic unpacks ( hexdata -> go ) a single value
130
+ // copyAtomic copies ( hexdata -> go ) a single value
131
131
func (arguments Arguments ) copyAtomic (v any , marshalledValues any ) error {
132
132
dst := reflect .ValueOf (v ).Elem ()
133
133
src := reflect .ValueOf (marshalledValues )
@@ -182,10 +182,16 @@ func (arguments Arguments) copyTuple(v any, marshalledValues []any) error {
182
182
// without supplying a struct to unpack into. Instead, this method returns a list containing the
183
183
// values. An atomic argument will be a list with one element.
184
184
func (arguments Arguments ) UnpackValues (data []byte ) ([]any , error ) {
185
- nonIndexedArgs := arguments .NonIndexed ()
186
- retval := make ([]any , 0 , len (nonIndexedArgs ))
187
- virtualArgs := 0
188
- for index , arg := range nonIndexedArgs {
185
+ var (
186
+ retval = make ([]any , 0 )
187
+ virtualArgs = 0
188
+ index = 0
189
+ )
190
+
191
+ for _ , arg := range arguments {
192
+ if arg .Indexed {
193
+ continue
194
+ }
189
195
marshalledValue , err := toGoType ((index + virtualArgs )* 32 , arg .Type , data )
190
196
if err != nil {
191
197
return nil , err
@@ -208,6 +214,7 @@ func (arguments Arguments) UnpackValues(data []byte) ([]any, error) {
208
214
virtualArgs += getTypeSize (arg .Type )/ 32 - 1
209
215
}
210
216
retval = append (retval , marshalledValue )
217
+ index ++
211
218
}
212
219
return retval , nil
213
220
}
0 commit comments