(v Item)
| 265 | } |
| 266 | |
| 267 | func (vm *VM) chargeCreate(v Item) { |
| 268 | var ( |
| 269 | cost int64 |
| 270 | ok = true |
| 271 | ) |
| 272 | |
| 273 | switch val := v.(type) { |
| 274 | case Entry: |
| 275 | cost = 128 |
| 276 | case Bytes: |
| 277 | cost, ok = checked.AddInt64(1, int64(len(val))) |
| 278 | case Tuple: |
| 279 | cost, ok = checked.AddInt64(1, int64(len(val))) |
| 280 | } |
| 281 | if !ok { |
| 282 | panic(errors.Wrap(ErrIntOverflow, "charging create cost")) |
| 283 | } |
| 284 | vm.charge(cost) |
| 285 | } |
| 286 | |
| 287 | func (vm *VM) chargeCopy(v Data) { |
| 288 | var ( |