(in io.Reader, name string)
| 304 | } |
| 305 | |
| 306 | func (l *State) undump(in io.Reader, name string) (c *luaClosure, err error) { |
| 307 | if name[0] == '@' || name[0] == '=' { |
| 308 | name = name[1:] |
| 309 | } else if name[0] == Signature[0] { |
| 310 | name = "binary string" |
| 311 | } |
| 312 | // TODO assign name to p.source? |
| 313 | s := &loadState{in, endianness()} |
| 314 | var p prototype |
| 315 | if err = s.checkHeader(); err != nil { |
| 316 | return |
| 317 | } else if p, err = s.readFunction(); err != nil { |
| 318 | return |
| 319 | } |
| 320 | c = l.newLuaClosure(&p) |
| 321 | l.push(c) |
| 322 | return |
| 323 | } |