"net/http.(*Transport).RoundTrip": true,
// Verify these don't exist:
- "net/http.http2Server": false,
- "net/http.(*Server).Serve": false,
+ "net/http.http2Server": false,
+ "net/http.(*Server).Serve": false,
+ "net/http.(*ServeMux).ServeHTTP": false,
+ "net/http.DefaultServeMux": false,
}
for sym, want := range wantSym {
got := bytes.Contains(out, []byte(sym))
}
// NewServeMux allocates and returns a new ServeMux.
-func NewServeMux() *ServeMux { return &ServeMux{m: make(map[string]muxEntry)} }
+func NewServeMux() *ServeMux { return new(ServeMux) }
// DefaultServeMux is the default ServeMux used by Serve.
-var DefaultServeMux = NewServeMux()
+var DefaultServeMux = &defaultServeMux
+
+var defaultServeMux ServeMux
// Does path match pattern?
func pathMatch(pattern, path string) bool {
panic("http: multiple registrations for " + pattern)
}
+ if mux.m == nil {
+ mux.m = make(map[string]muxEntry)
+ }
mux.m[pattern] = muxEntry{explicit: true, h: handler, pattern: pattern}
if pattern[0] != '/' {