| 288 | } |
| 289 | |
| 290 | func (state *loadState) checkHeader() error { |
| 291 | h := header |
| 292 | if err := state.read(&h); err != nil { |
| 293 | return err |
| 294 | } else if h == header { |
| 295 | return nil |
| 296 | } else if string(h.Signature[:]) != Signature { |
| 297 | return errNotPrecompiledChunk |
| 298 | } else if h.Version != header.Version || h.Format != header.Format { |
| 299 | return errVersionMismatch |
| 300 | } else if h.Tail != header.Tail { |
| 301 | return errCorrupted |
| 302 | } |
| 303 | return errIncompatible |
| 304 | } |
| 305 | |
| 306 | func (l *State) undump(in io.Reader, name string) (c *luaClosure, err error) { |
| 307 | if name[0] == '@' || name[0] == '=' { |