summaryrefslogtreecommitdiff
path: root/ext/-test-/string/capacity.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/-test-/string/capacity.c')
-rw-r--r--ext/-test-/string/capacity.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/-test-/string/capacity.c b/ext/-test-/string/capacity.c
new file mode 100644
index 0000000000..33b2023fd3
--- /dev/null
+++ b/ext/-test-/string/capacity.c
@@ -0,0 +1,18 @@
+#include "ruby.h"
+#include "internal/string.h"
+
+static VALUE
+bug_str_capacity(VALUE klass, VALUE str)
+{
+ if (!STR_EMBED_P(str) && STR_SHARED_P(str)) {
+ return INT2FIX(0);
+ }
+
+ return LONG2FIX(rb_str_capacity(str));
+}
+
+void
+Init_string_capacity(VALUE klass)
+{
+ rb_define_singleton_method(klass, "capacity", bug_str_capacity, 1);
+}