Skip to content

Commit 00506bc

Browse files
committed
refactor: force use of pseudo.Constructor.Zero() instead of NilPointer()
1 parent 1ad168e commit 00506bc

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

params/config.libevm.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ func RegisterExtras[C ChainConfigHooks, R RulesHooks](e Extras[C, R]) ExtraPaylo
6161

6262
getter := e.getter()
6363
registeredExtras = &extraConstructors{
64-
chainConfig: pseudo.NewConstructor[C](),
65-
rules: pseudo.NewConstructor[R](),
66-
reuseJSONRoot: e.ReuseJSONRoot,
67-
newForRules: e.newForRules,
68-
getter: getter,
64+
newChainConfig: pseudo.NewConstructor[C]().Zero,
65+
newRules: pseudo.NewConstructor[R]().Zero,
66+
reuseJSONRoot: e.ReuseJSONRoot,
67+
newForRules: e.newForRules,
68+
getter: getter,
6969
}
7070
return getter
7171
}
@@ -97,9 +97,9 @@ func TestOnlyClearRegisteredExtras() {
9797
var registeredExtras *extraConstructors
9898

9999
type extraConstructors struct {
100-
chainConfig, rules pseudo.Constructor
101-
reuseJSONRoot bool
102-
newForRules func(_ *ChainConfig, _ *Rules, blockNum *big.Int, isMerge bool, timestamp uint64) *pseudo.Type
100+
newChainConfig, newRules func() *pseudo.Type
101+
reuseJSONRoot bool
102+
newForRules func(_ *ChainConfig, _ *Rules, blockNum *big.Int, isMerge bool, timestamp uint64) *pseudo.Type
103103
// use top-level hooksFrom<X>() functions instead of these as they handle
104104
// instances where no [Extras] were registered.
105105
getter interface {
@@ -110,7 +110,7 @@ type extraConstructors struct {
110110

111111
func (e *Extras[C, R]) newForRules(c *ChainConfig, r *Rules, blockNum *big.Int, isMerge bool, timestamp uint64) *pseudo.Type {
112112
if e.NewRules == nil {
113-
return registeredExtras.rules.Zero()
113+
return registeredExtras.newRules()
114114
}
115115
rExtra := e.NewRules(c, r, e.getter().FromChainConfig(c), blockNum, isMerge, timestamp)
116116
return pseudo.From(rExtra).Type
@@ -190,7 +190,7 @@ func (c *ChainConfig) extraPayload() *pseudo.Type {
190190
panic(fmt.Sprintf("%T.ExtraPayload() called before RegisterExtras()", c))
191191
}
192192
if c.extra == nil {
193-
c.extra = registeredExtras.chainConfig.Zero()
193+
c.extra = registeredExtras.newChainConfig()
194194
}
195195
return c.extra
196196
}
@@ -202,7 +202,7 @@ func (r *Rules) extraPayload() *pseudo.Type {
202202
panic(fmt.Sprintf("%T.ExtraPayload() called before RegisterExtras()", r))
203203
}
204204
if r.extra == nil {
205-
r.extra = registeredExtras.rules.Zero()
205+
r.extra = registeredExtras.newRules()
206206
}
207207
return r.extra
208208
}

params/json.libevm.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func (c *ChainConfig) UnmarshalJSON(data []byte) error {
3030
return c.unmarshalJSONWithExtra(data)
3131

3232
case reg != nil && reg.reuseJSONRoot: // although the latter is redundant, it's clearer
33-
c.extra = reg.chainConfig.Zero()
33+
c.extra = reg.newChainConfig()
3434
if err := json.Unmarshal(data, c.extra); err != nil {
3535
c.extra = nil
3636
return err
@@ -47,7 +47,7 @@ func (c *ChainConfig) UnmarshalJSON(data []byte) error {
4747
func (c *ChainConfig) unmarshalJSONWithExtra(data []byte) error {
4848
cc := &chainConfigWithExportedExtra{
4949
chainConfigWithoutMethods: (*chainConfigWithoutMethods)(c),
50-
Extra: registeredExtras.chainConfig.Zero(),
50+
Extra: registeredExtras.newChainConfig(),
5151
}
5252
if err := json.Unmarshal(data, cc); err != nil {
5353
return err

0 commit comments

Comments
 (0)