mirror of
https://github.com/json-iterator/go.git
synced 2025-04-23 11:37:32 +02:00
fix build
This commit is contained in:
parent
3d5ee1098a
commit
9edd73f752
@ -97,9 +97,9 @@ func (adapter *Decoder) Buffered() io.Reader {
|
|||||||
|
|
||||||
// UseNumber for number JSON element, use float64 or json.NumberValue (alias of string)
|
// UseNumber for number JSON element, use float64 or json.NumberValue (alias of string)
|
||||||
func (adapter *Decoder) UseNumber() {
|
func (adapter *Decoder) UseNumber() {
|
||||||
origCfg := adapter.iter.cfg.configBeforeFrozen
|
cfg := adapter.iter.cfg.configBeforeFrozen
|
||||||
origCfg.UseNumber = true
|
cfg.UseNumber = true
|
||||||
adapter.iter.cfg = origCfg.Froze().(*frozenConfig)
|
adapter.iter.cfg = cfg.frozeWithCacheReuse()
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEncoder same as json.NewEncoder
|
// NewEncoder same as json.NewEncoder
|
||||||
@ -122,14 +122,16 @@ func (adapter *Encoder) Encode(val interface{}) error {
|
|||||||
|
|
||||||
// SetIndent set the indention. Prefix is not supported
|
// SetIndent set the indention. Prefix is not supported
|
||||||
func (adapter *Encoder) SetIndent(prefix, indent string) {
|
func (adapter *Encoder) SetIndent(prefix, indent string) {
|
||||||
adapter.stream.cfg.indentionStep = len(indent)
|
config := adapter.stream.cfg.configBeforeFrozen
|
||||||
|
config.IndentionStep = len(indent)
|
||||||
|
adapter.stream.cfg = config.frozeWithCacheReuse()
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetEscapeHTML escape html by default, set to false to disable
|
// SetEscapeHTML escape html by default, set to false to disable
|
||||||
func (adapter *Encoder) SetEscapeHTML(escapeHTML bool) {
|
func (adapter *Encoder) SetEscapeHTML(escapeHTML bool) {
|
||||||
config := adapter.stream.cfg.configBeforeFrozen
|
config := adapter.stream.cfg.configBeforeFrozen
|
||||||
config.EscapeHTML = escapeHTML
|
config.EscapeHTML = escapeHTML
|
||||||
adapter.stream.cfg = config.Froze().(*frozenConfig)
|
adapter.stream.cfg = config.frozeWithCacheReuse()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Valid reports whether data is a valid JSON encoding.
|
// Valid reports whether data is a valid JSON encoding.
|
||||||
|
@ -60,11 +60,7 @@ var ConfigFastest = Config{
|
|||||||
|
|
||||||
// Froze forge API from config
|
// Froze forge API from config
|
||||||
func (cfg Config) Froze() API {
|
func (cfg Config) Froze() API {
|
||||||
api := getFrozenConfigFromCache(cfg)
|
api := &frozenConfig{
|
||||||
if api != nil {
|
|
||||||
return api
|
|
||||||
}
|
|
||||||
api = &frozenConfig{
|
|
||||||
sortMapKeys: cfg.SortMapKeys,
|
sortMapKeys: cfg.SortMapKeys,
|
||||||
indentionStep: cfg.IndentionStep,
|
indentionStep: cfg.IndentionStep,
|
||||||
objectFieldMustBeSimpleString: cfg.ObjectFieldMustBeSimpleString,
|
objectFieldMustBeSimpleString: cfg.ObjectFieldMustBeSimpleString,
|
||||||
@ -86,6 +82,15 @@ func (cfg Config) Froze() API {
|
|||||||
api.validateJsonRawMessage()
|
api.validateJsonRawMessage()
|
||||||
}
|
}
|
||||||
api.configBeforeFrozen = cfg
|
api.configBeforeFrozen = cfg
|
||||||
|
return api
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cfg Config) frozeWithCacheReuse() *frozenConfig {
|
||||||
|
api := getFrozenConfigFromCache(cfg)
|
||||||
|
if api != nil {
|
||||||
|
return api
|
||||||
|
}
|
||||||
|
api = cfg.Froze().(*frozenConfig)
|
||||||
addFrozenConfigToCache(cfg, api)
|
addFrozenConfigToCache(cfg, api)
|
||||||
return api
|
return api
|
||||||
}
|
}
|
||||||
@ -233,7 +238,7 @@ func (cfg *frozenConfig) MarshalIndent(v interface{}, prefix, indent string) ([]
|
|||||||
}
|
}
|
||||||
newCfg := cfg.configBeforeFrozen
|
newCfg := cfg.configBeforeFrozen
|
||||||
newCfg.IndentionStep = len(indent)
|
newCfg.IndentionStep = len(indent)
|
||||||
return newCfg.Froze().Marshal(v)
|
return newCfg.frozeWithCacheReuse().Marshal(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cfg *frozenConfig) UnmarshalFromString(str string, v interface{}) error {
|
func (cfg *frozenConfig) UnmarshalFromString(str string, v interface{}) error {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user