• Russ Cox's avatar
    runtime: adjust errorCString definition to avoid allocation · 48452a27
    Russ Cox authored
    The low-level implementation of divide on ARM assumes that
    it can panic with an error created by newErrorCString without
    allocating. If we make interface data words require pointer values,
    the current definition would require an allocation when stored
    in an interface. Changing the definition to use unsafe.Pointer
    instead of uintptr avoids the allocation. This change is okay
    because the field really is a pointer (to a C string in rodata).
    
    Update #8405.
    
    This should make CL 133830043 safe to try again.
    
    LGTM=bradfitz
    R=golang-codereviews, bradfitz
    CC=dave, golang-codereviews, r
    https://golang.org/cl/133820043
    48452a27
error.go 3.12 KB