I'm a C programmer so maybe this is a dumb question but, why does this code 
in runtime/gostring.go allocate (rawstring) then copy data (memmove) 
instead of just making the stringStruct.str point at the incoming data? 
i.e. copy the pointer instead of allocating+copying data.


func gostring(p *byte) string {
l := findnull(p)
if l == 0 {
return ""
}
s, b := rawstring(l)
memmove(unsafe.Pointer(&b[0]), unsafe.Pointer(p), uintptr(l))
return s
}

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/8955f1fd-5984-40a2-aae4-0946ae04bdd2o%40googlegroups.com.

Reply via email to