Avoid using pointers to store opaque values, which will be incompatible in Go 1.4

This is an obvious error.  The unsafe.Pointer was intended to store a flag value (zero or non-zero) but it may well confuse the garbage collector.  See http://tip.golang.org/doc/go1.3#garbage_collector