Differences From
Artifact [4c9f723184]:
59 59 end
60 60 m.codestr = terra(code: uint16)
61 61 var [resptext] var [resplen]
62 62 switch code do [respbranches] end
63 63 return resptext, resplen
64 64 end
65 65
66 -terra m.hier(uri: lib.mem.ptr(int8)): lib.mem.ptr(lib.mem.ref(int8))
66 +terra m.hier(pool: &lib.mem.pool, uri: lib.mem.ptr(int8)): lib.mem.ptr(lib.mem.ref(int8))
67 67 if uri.ct == 0 then return [lib.mem.ptr(lib.mem.ref(int8))] { ptr = nil, ct = 0 } end
68 68 var sz = 1
69 69 var start = 0 if uri.ptr[0] == @'/' then start = 1 end
70 70 for i = start, uri.ct do if uri.ptr[i] == @'/' then sz = sz + 1 end end
71 - var lst = lib.mem.heapa([lib.mem.ref(int8)], sz)
71 + var lst = pool:alloc([lib.mem.ref(int8)], sz)
72 72 if sz == 0 then
73 73 lst.ptr[0].ptr = uri.ptr
74 74 lst.ptr[0].ct = uri.ct
75 75 return lst
76 76 end
77 77
78 78 var idx: intptr = 0