# Fronzen string cannot unpack("p")

**URL:** <https://www.ruby-forum.com/t/fronzen-string-cannot-unpack-p/126840>\
**Category:** Development\
**Created:** [January 22, 2008, 6:08pm UTC](https://www.ruby-forum.com/t/fronzen-string-cannot-unpack-p/126840 "2008-01-22T18:08:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [January 22, 2008, 6:08pm UTC](https://www.ruby-forum.com/t/fronzen-string-cannot-unpack-p/126840/1 "2008-01-22T18:08:05Z")

</div>

e$B$J$+$@$G$9!#e(B

1.9e$B$G!"e(Bpack(“p”)e$B$7$F$G$-$?e(BStringe$B$re(Bfreezee$B$9$k$H!"e(Bunpacke$B$G$-$J$/$Je(B  
e$B$j$^$9!#e(B1.8e$B$G$O$G$-$^$9!#e(B

$ ruby19 -v -e ‘[""].pack(“p”).freeze.unpack(“p”)’  
ruby 1.9.0 (2008-01-22 revision 15165) [i686-linux]  
-e:1:in `unpack': no associated pointer (ArgumentError) from -e:1:in`’

# Index: string.c

— string.c (revision 15173)  
+++ string.c (working copy)  
@@ -772,4 +772,5 @@ rb\_str\_associate(VALUE str, VALUE add)  
}  
FL\_SET(str, STR\_ASSOC);

- RBASIC(add)-\>klass = 0;  
RSTRING(str)-\>as.heap.aux.shared = add;  
}  
@@ -780,6 +781,7 @@ rb\_str\_associated(VALUE str)  
{  
if (STR\_ASSOC\_P(str)) {

- if (OBJ\_FROZEN(str)) return Qfalse;
- return RSTRING(str)-\>as.heap.aux.shared;

- VALUE ary = RSTRING(str)-\>as.heap.aux.shared;
- if (OBJ\_FROZEN(str)) OBJ\_FREEZE(ary);
- return ary;  
}  
return Qfalse;  
@@ -954,4 +956,8 @@ VALUE  
rb\_str\_freeze(VALUE str)  
{
- if (STR\_ASSOC\_P(str)) {
- VALUE ary = RSTRING(str)-\>as.heap.aux.shared;
- OBJ\_FREEZE(ary);
- }  
return rb\_obj\_freeze(str);  
}

---

<div class="post-metadata">

**Author:** ![nobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e9c0ed/32.png) [@nobu](https://www.ruby-forum.com/u/nobu)\
**Post date:** [January 23, 2008, 4:35am UTC](https://www.ruby-forum.com/t/fronzen-string-cannot-unpack-p/126840/2 "2008-01-23T04:35:20Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:33282] fronzen string cannot unpack(“p”)”  
on Wed, 23 Jan 2008 02:07:00 +0900, Nobuyoshi N.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|1.9e$B$G!"e(Bpack(“p”)e$B$7$F$G$-$?e(BStringe$B$re(Bfreezee$B$9$k$H!"e(Bunpacke$B$G$-$J$/$Je(B  
|e$B$j$^$9!#e(B1.8e$B$G$O$G$-$^$9!#e(B

e$BI{:nMQ$,$“$j$=$&$J=$@5$G$9$,!”$I$&LdBj$,$"$k$N$+3N?.$,$J$$$Ne(B  
e$B$GC1$J$kIT0B$J$s$G$7$g$&!#%3%\_%C%H$7$F$/$@$5$$!#e(B
