提交 5479c443 编写于 作者: W Will Smith 提交者: Phillip Carter

Minor pickle optimization for Map and list (#7812)

* Minor pickle optimization for Map and list

* Minor feedback changes

* quick style change
上级 8e2cbff0
......@@ -581,8 +581,7 @@ let u_array_ext extraf f st =
extraItem, arr
let u_list_core f n st =
[ for _ in 1..n do
yield f st ]
List.init n (fun _ -> f st)
let u_list f st =
let n = u_int st
......@@ -1305,11 +1304,23 @@ let u_ILInstr st =
// Pickle/unpickle for F# types and module signatures
//---------------------------------------------------------------------------
let p_Map pk pv = p_wrap Map.toList (p_list (p_tup2 pk pv))
let p_Map_core pk pv xs st =
xs |> Map.iter (fun k v -> pk k st; pv v st)
let p_Map pk pv x st =
p_int (Map.count x) st
p_Map_core pk pv x st
let p_qlist pv = p_wrap QueueList.toList (p_list pv)
let p_namemap p = p_Map p_string p
let u_Map uk uv = u_wrap Map.ofList (u_list (u_tup2 uk uv))
let u_Map_core uk uv n st =
Map.ofSeq (seq { for _ in 1..n -> (uk st, uv st) })
let u_Map uk uv st =
let n = u_int st
u_Map_core uk uv n st
let u_qlist uv = u_wrap QueueList.ofList (u_list uv)
let u_namemap u = u_Map u_string u
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册