mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-02 07:26:53 +00:00
Optimisation: Large struct pointer conversion (final part) (#265)
Completes large struct pointer optomisations over the entire codebase and enables hugeParams linter by default
This commit is contained in:
@@ -131,7 +131,7 @@ func SecondCurrencyExists(exchange string, p currency.Pair) bool {
|
||||
}
|
||||
|
||||
// CreateNewTicker creates a new Ticker
|
||||
func CreateNewTicker(exchangeName string, tickerNew Price, tickerType string) Ticker {
|
||||
func CreateNewTicker(exchangeName string, tickerNew *Price, tickerType string) Ticker {
|
||||
m.Lock()
|
||||
defer m.Unlock()
|
||||
ticker := Ticker{}
|
||||
@@ -139,7 +139,7 @@ func CreateNewTicker(exchangeName string, tickerNew Price, tickerType string) Ti
|
||||
ticker.Price = make(map[string]map[string]map[string]Price)
|
||||
a := make(map[string]map[string]Price)
|
||||
b := make(map[string]Price)
|
||||
b[tickerType] = tickerNew
|
||||
b[tickerType] = *tickerNew
|
||||
a[tickerNew.Pair.Quote.Upper().String()] = b
|
||||
ticker.Price[tickerNew.Pair.Base.Upper().String()] = a
|
||||
Tickers = append(Tickers, ticker)
|
||||
@@ -148,7 +148,7 @@ func CreateNewTicker(exchangeName string, tickerNew Price, tickerType string) Ti
|
||||
|
||||
// ProcessTicker processes incoming tickers, creating or updating the Tickers
|
||||
// list
|
||||
func ProcessTicker(exchangeName string, tickerNew Price, tickerType string) error {
|
||||
func ProcessTicker(exchangeName string, tickerNew *Price, tickerType string) error {
|
||||
if tickerNew.Pair.String() == "" {
|
||||
return errors.New("")
|
||||
}
|
||||
@@ -164,7 +164,7 @@ func ProcessTicker(exchangeName string, tickerNew Price, tickerType string) erro
|
||||
if FirstCurrencyExists(exchangeName, tickerNew.Pair.Base) {
|
||||
m.Lock()
|
||||
a := make(map[string]Price)
|
||||
a[tickerType] = tickerNew
|
||||
a[tickerType] = *tickerNew
|
||||
ticker.Price[tickerNew.Pair.Base.Upper().String()][tickerNew.Pair.Quote.Upper().String()] = a
|
||||
m.Unlock()
|
||||
return nil
|
||||
@@ -173,7 +173,7 @@ func ProcessTicker(exchangeName string, tickerNew Price, tickerType string) erro
|
||||
m.Lock()
|
||||
a := make(map[string]map[string]Price)
|
||||
b := make(map[string]Price)
|
||||
b[tickerType] = tickerNew
|
||||
b[tickerType] = *tickerNew
|
||||
a[tickerNew.Pair.Quote.Upper().String()] = b
|
||||
ticker.Price[tickerNew.Pair.Base.Upper().String()] = a
|
||||
m.Unlock()
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestPriceToString(t *testing.T) {
|
||||
PriceATH: 1337,
|
||||
}
|
||||
|
||||
newTicker := CreateNewTicker("ANX", priceStruct, Spot)
|
||||
newTicker := CreateNewTicker("ANX", &priceStruct, Spot)
|
||||
|
||||
if newTicker.PriceToString(newPair, "last", Spot) != "1200" {
|
||||
t.Error("Test Failed - ticker PriceToString last value is incorrect")
|
||||
@@ -66,7 +66,7 @@ func TestGetTicker(t *testing.T) {
|
||||
PriceATH: 1337,
|
||||
}
|
||||
|
||||
err := ProcessTicker("bitfinex", priceStruct, Spot)
|
||||
err := ProcessTicker("bitfinex", &priceStruct, Spot)
|
||||
if err != nil {
|
||||
t.Fatal("Test failed. ProcessTicker error", err)
|
||||
}
|
||||
@@ -98,7 +98,7 @@ func TestGetTicker(t *testing.T) {
|
||||
|
||||
priceStruct.PriceATH = 9001
|
||||
priceStruct.Pair.Base = currency.ETH
|
||||
err = ProcessTicker("bitfinex", priceStruct, "futures_3m")
|
||||
err = ProcessTicker("bitfinex", &priceStruct, "futures_3m")
|
||||
if err != nil {
|
||||
t.Fatal("Test failed. ProcessTicker error", err)
|
||||
}
|
||||
@@ -126,7 +126,7 @@ func TestGetTickerByExchange(t *testing.T) {
|
||||
PriceATH: 1337,
|
||||
}
|
||||
|
||||
anxTicker := CreateNewTicker("ANX", priceStruct, Spot)
|
||||
anxTicker := CreateNewTicker("ANX", &priceStruct, Spot)
|
||||
Tickers = append(Tickers, anxTicker)
|
||||
|
||||
tickerPtr, err := GetTickerByExchange("ANX")
|
||||
@@ -151,7 +151,7 @@ func TestFirstCurrencyExists(t *testing.T) {
|
||||
PriceATH: 1337,
|
||||
}
|
||||
|
||||
alphaTicker := CreateNewTicker("alphapoint", priceStruct, Spot)
|
||||
alphaTicker := CreateNewTicker("alphapoint", &priceStruct, Spot)
|
||||
Tickers = append(Tickers, alphaTicker)
|
||||
|
||||
if !FirstCurrencyExists("alphapoint", currency.BTC) {
|
||||
@@ -177,7 +177,7 @@ func TestSecondCurrencyExists(t *testing.T) {
|
||||
PriceATH: 1337,
|
||||
}
|
||||
|
||||
bitstampTicker := CreateNewTicker("bitstamp", priceStruct, "SPOT")
|
||||
bitstampTicker := CreateNewTicker("bitstamp", &priceStruct, "SPOT")
|
||||
Tickers = append(Tickers, bitstampTicker)
|
||||
|
||||
if !SecondCurrencyExists("bitstamp", newPair) {
|
||||
@@ -204,7 +204,7 @@ func TestCreateNewTicker(t *testing.T) {
|
||||
PriceATH: 1337,
|
||||
}
|
||||
|
||||
newTicker := CreateNewTicker("ANX", priceStruct, Spot)
|
||||
newTicker := CreateNewTicker("ANX", &priceStruct, Spot)
|
||||
|
||||
if reflect.ValueOf(newTicker).NumField() != 2 {
|
||||
t.Error("Test Failed - ticker CreateNewTicker struct change/or updated")
|
||||
@@ -259,12 +259,12 @@ func TestProcessTicker(t *testing.T) { // non-appending function to tickers
|
||||
PriceATH: 1337,
|
||||
}
|
||||
|
||||
err := ProcessTicker("btcc", Price{}, Spot)
|
||||
err := ProcessTicker("btcc", &Price{}, Spot)
|
||||
if err == nil {
|
||||
t.Fatal("Test failed. ProcessTicker error cannot be nil")
|
||||
}
|
||||
|
||||
err = ProcessTicker("btcc", priceStruct, Spot)
|
||||
err = ProcessTicker("btcc", &priceStruct, Spot)
|
||||
if err != nil {
|
||||
t.Fatal("Test failed. ProcessTicker error", err)
|
||||
}
|
||||
@@ -280,7 +280,7 @@ func TestProcessTicker(t *testing.T) { // non-appending function to tickers
|
||||
|
||||
secondPair := currency.NewPairFromStrings("BTC", "AUD")
|
||||
priceStruct.Pair = secondPair
|
||||
err = ProcessTicker("btcc", priceStruct, Spot)
|
||||
err = ProcessTicker("btcc", &priceStruct, Spot)
|
||||
if err != nil {
|
||||
t.Fatal("Test failed. ProcessTicker error", err)
|
||||
}
|
||||
@@ -326,7 +326,7 @@ func TestProcessTicker(t *testing.T) { // non-appending function to tickers
|
||||
}
|
||||
|
||||
sm.Lock()
|
||||
err = ProcessTicker(newName, tp, Spot)
|
||||
err = ProcessTicker(newName, &tp, Spot)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
catastrophicFailure = true
|
||||
|
||||
Reference in New Issue
Block a user