|
|
|
@ -26,7 +26,6 @@ package js
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
"activething.com/go/gogo/packs"
|
|
|
|
"activething.com/go/gogo/packs"
|
|
|
|
"encoding"
|
|
|
|
"encoding"
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"reflect"
|
|
|
|
"reflect"
|
|
|
|
"sort"
|
|
|
|
"sort"
|
|
|
|
"strconv"
|
|
|
|
"strconv"
|
|
|
|
@ -68,6 +67,15 @@ func (m typeMapPacker) pack (s *packs.State, v reflect.Value, _ Flags) {
|
|
|
|
mi := v.MapRange()
|
|
|
|
mi := v.MapRange()
|
|
|
|
ls := make([]typeMapEntry,v.Len())
|
|
|
|
ls := make([]typeMapEntry,v.Len())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if s.Level > startDetectingCyclesAfter {
|
|
|
|
|
|
|
|
pt := v.UnsafePointer()
|
|
|
|
|
|
|
|
if _,hs := s.Checks[pt]; hs {
|
|
|
|
|
|
|
|
s.SetError(packs.G.ErrRedundantPack)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
s.Checks[pt]=struct{}{}
|
|
|
|
|
|
|
|
defer delete(s.Checks,pt)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for i:=0; mi.Next(); i++ {
|
|
|
|
for i:=0; mi.Next(); i++ {
|
|
|
|
ls[i] = typeMapEntry{
|
|
|
|
ls[i] = typeMapEntry{
|
|
|
|
@ -75,7 +83,6 @@ func (m typeMapPacker) pack (s *packs.State, v reflect.Value, _ Flags) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if er := m.keyStringer(&ls[i], mi.Key()); er != nil {
|
|
|
|
if er := m.keyStringer(&ls[i], mi.Key()); er != nil {
|
|
|
|
fmt.Printf("Error Ke %d--%v\n",mi.Key(),mi.Key().Type())
|
|
|
|
|
|
|
|
s.SetError(er)
|
|
|
|
s.SetError(er)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -153,7 +160,6 @@ func buildKeyStringer(rt reflect.Type) func(me *typeMapEntry, key reflect.Value)
|
|
|
|
return func(e *typeMapEntry, k reflect.Value) error {
|
|
|
|
return func(e *typeMapEntry, k reflect.Value) error {
|
|
|
|
k = k.Elem()
|
|
|
|
k = k.Elem()
|
|
|
|
|
|
|
|
|
|
|
|
fmt.Printf("Ejecutando packer general\n %v\n",k)
|
|
|
|
|
|
|
|
if k.Type().Kind() == reflect.String {
|
|
|
|
if k.Type().Kind() == reflect.String {
|
|
|
|
e.key = k.String()
|
|
|
|
e.key = k.String()
|
|
|
|
e.flags = FlagScapeHTML
|
|
|
|
e.flags = FlagScapeHTML
|
|
|
|
|