feyeleanor/slices

MakeAddressable no longer defined after update to raw

mikaelberg opened this issue · 3 comments

feyeleanor/slices needs update to conform to feyeleanor/raw@6e1bed0.

Patch below:

From: Mikael Berg <m@mikaelberg.se>
Date: Tue, 27 Dec 2016 15:31:51 +0100
Subject: [PATCH] Replace call to deprecated raw.MakeAddressable

---
 reflected.go | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/reflected.go b/reflected.go
index 4c219e2..cce4619 100644
--- a/reflected.go
+++ b/reflected.go
@@ -42,8 +42,12 @@ func (s RSlice) MakeSlice(length, capacity int) (r RSlice) {
 }
 
 func (s *RSlice) MakeAddressable() {
-	n := raw.MakeAddressable(*s.Value)
-	s.Value = &n
+	n := raw.Duplicate(*s.Value)
+	if value, ok := n.(reflect.Value); ok {
+		s.Value = &value
+	} else {
+		s.Value = nil
+	}
 }
 
 func (s *RSlice) setValue(v reflect.Value) {
-- 
2.9.2.windows.1

0001-Replace-call-to-deprecated-raw.MakeAddressable.zip

Sorry for the slow response - enjoying a little too much Xmas cheer :)

I'll update the code now.

I've reinstated MakeAddressable in RAW with slightly different semantics and made an appropriate change here. All tests pass so hopefully this will serve your purposes.