mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-11-05 04:29:19 +02:00
Remove slices dependency. (#2930)
* Remove slices dependency. * Fix nil pointer dereference bug. --------- Co-authored-by: nobody <nobody@nowhere.mars>
This commit is contained in:
parent
2b08d8638e
commit
961cf9d3b1
|
@ -3,7 +3,6 @@ package reflect
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"reflect"
|
"reflect"
|
||||||
"slices"
|
|
||||||
|
|
||||||
cserial "github.com/xtls/xray-core/common/serial"
|
cserial "github.com/xtls/xray-core/common/serial"
|
||||||
)
|
)
|
||||||
|
@ -18,6 +17,9 @@ func MarshalToJson(v interface{}) (string, bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func marshalTypedMessage(v *cserial.TypedMessage, ignoreNullValue bool) interface{} {
|
func marshalTypedMessage(v *cserial.TypedMessage, ignoreNullValue bool) interface{} {
|
||||||
|
if v == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
tmsg, err := v.GetInstance()
|
tmsg, err := v.GetInstance()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
|
@ -111,28 +113,29 @@ func marshalKnownType(v interface{}, ignoreNullValue bool) (interface{}, bool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var valueKinds = []reflect.Kind{
|
|
||||||
reflect.Bool,
|
|
||||||
reflect.Int,
|
|
||||||
reflect.Int8,
|
|
||||||
reflect.Int16,
|
|
||||||
reflect.Int32,
|
|
||||||
reflect.Int64,
|
|
||||||
reflect.Uint,
|
|
||||||
reflect.Uint8,
|
|
||||||
reflect.Uint16,
|
|
||||||
reflect.Uint32,
|
|
||||||
reflect.Uint64,
|
|
||||||
reflect.Uintptr,
|
|
||||||
reflect.Float32,
|
|
||||||
reflect.Float64,
|
|
||||||
reflect.Complex64,
|
|
||||||
reflect.Complex128,
|
|
||||||
reflect.String,
|
|
||||||
}
|
|
||||||
|
|
||||||
func isValueKind(kind reflect.Kind) bool {
|
func isValueKind(kind reflect.Kind) bool {
|
||||||
return slices.Contains(valueKinds, kind)
|
switch kind {
|
||||||
|
case reflect.Bool,
|
||||||
|
reflect.Int,
|
||||||
|
reflect.Int8,
|
||||||
|
reflect.Int16,
|
||||||
|
reflect.Int32,
|
||||||
|
reflect.Int64,
|
||||||
|
reflect.Uint,
|
||||||
|
reflect.Uint8,
|
||||||
|
reflect.Uint16,
|
||||||
|
reflect.Uint32,
|
||||||
|
reflect.Uint64,
|
||||||
|
reflect.Uintptr,
|
||||||
|
reflect.Float32,
|
||||||
|
reflect.Float64,
|
||||||
|
reflect.Complex64,
|
||||||
|
reflect.Complex128,
|
||||||
|
reflect.String:
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func marshalInterface(v interface{}, ignoreNullValue bool) interface{} {
|
func marshalInterface(v interface{}, ignoreNullValue bool) interface{} {
|
||||||
|
|
|
@ -2,7 +2,6 @@ package core
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
"slices"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/xtls/xray-core/common"
|
"github.com/xtls/xray-core/common"
|
||||||
|
@ -60,9 +59,12 @@ func GetMergedConfig(args cmdarg.Arg) (string, error) {
|
||||||
supported := []string{"json", "yaml", "toml"}
|
supported := []string{"json", "yaml", "toml"}
|
||||||
for _, file := range args {
|
for _, file := range args {
|
||||||
format := getFormat(file)
|
format := getFormat(file)
|
||||||
if slices.Contains(supported, format) {
|
for _, s := range supported {
|
||||||
files = append(files, file)
|
if s == format {
|
||||||
formats = append(formats, format)
|
files = append(files, file)
|
||||||
|
formats = append(formats, format)
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ConfigMergedFormFiles(files, formats)
|
return ConfigMergedFormFiles(files, formats)
|
||||||
|
|
Loading…
Reference in New Issue