()
| 123 | var nodeSize = int(unsafe.Sizeof(node{})) |
| 124 | |
| 125 | func newEncoder() *encoder { |
| 126 | idSlice := make([]string, 1) |
| 127 | |
| 128 | a := (arenaPool.Get()).(*arena) |
| 129 | a.reset() |
| 130 | |
| 131 | e := &encoder{ |
| 132 | attrMap: make(map[string]uint16), |
| 133 | idSlice: idSlice, |
| 134 | arena: a, |
| 135 | alloc: z.NewAllocator(4<<10, "OutputNode.Encoder"), |
| 136 | buf: &bytes.Buffer{}, |
| 137 | } |
| 138 | e.uidAttr = e.idForAttr("uid") |
| 139 | return e |
| 140 | } |
| 141 | |
| 142 | // Sort the given fastJson list |
| 143 | func (enc *encoder) MergeSort(headRef *fastJsonNode) { |