merge goyaml-rune-changes
diff --git a/encode.go b/encode.go
index a06c4d0..c4aee87 100644
--- a/encode.go
+++ b/encode.go
@@ -250,8 +250,7 @@
 	e.emitScalar("null", "", "", C.YAML_PLAIN_SCALAR_STYLE)
 }
 
-func (e *encoder) emitScalar(value, anchor, tag string,
-	style C.yaml_scalar_style_t) {
+func (e *encoder) emitScalar(value, anchor, tag string, style C.yaml_scalar_style_t) {
 	var canchor, ctag, cvalue *C.yaml_char_t
 	var cimplicit C.int
 	var free func()
diff --git a/goyaml.go b/goyaml.go
index 4bf3c43..518ddeb 100644
--- a/goyaml.go
+++ b/goyaml.go
@@ -256,14 +256,12 @@
 	switch v.Kind() {
 	case reflect.String:
 		return len(v.String()) == 0
-	case reflect.Interface:
+	case reflect.Interface, reflect.Ptr:
 		return v.IsNil()
 	case reflect.Slice:
 		return v.Len() == 0
 	case reflect.Map:
 		return v.Len() == 0
-	case reflect.Ptr:
-		return v.IsNil()
 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
 		return v.Int() == 0
 	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: