diff options
author | Étienne Barrié <[email protected]> | 2024-03-25 11:18:26 +0100 |
---|---|---|
committer | Jean Boussier <[email protected]> | 2024-03-26 12:54:54 +0100 |
commit | 2b08406cd0db0042520fb0346544660e10a4d93c (patch) | |
tree | 9b649ec091c72b13227687d6e19079f67c14da5b /include/ruby/internal | |
parent | 8cfa8e87b2705fb356bbbb9ef719b5c5a54f9862 (diff) |
Expose rb_str_chilled_p
Some extensions (like stringio) may need to differentiate between
chilled strings and frozen strings.
They can now use rb_str_chilled_p but must check for its presence since
the function will be removed when chilled strings are removed.
[Bug #20389]
[Feature #20205]
Co-authored-by: Jean Boussier <[email protected]>
Diffstat (limited to 'include/ruby/internal')
-rw-r--r-- | include/ruby/internal/intern/string.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/ruby/internal/intern/string.h b/include/ruby/internal/intern/string.h index 952dc508c2..cfe0454ee8 100644 --- a/include/ruby/internal/intern/string.h +++ b/include/ruby/internal/intern/string.h @@ -602,6 +602,21 @@ VALUE rb_str_dup(VALUE str); VALUE rb_str_resurrect(VALUE str); /** + * Returns whether a string is chilled or not. + * + * This function is temporary and users must check for its presence using + * #ifdef HAVE_RB_STR_CHILLED_P. If HAVE_RB_STR_CHILLED_P is not defined, then + * strings can't be chilled. + * + * @param[in] str A string. + * @retval 1 The string is chilled. + * @retval 0 Otherwise. + */ +bool rb_str_chilled_p(VALUE str); + +#define HAVE_RB_STR_CHILLED_P 1 + +/** * Obtains a "temporary lock" of the string. This advisory locking mechanism * prevents other cooperating threads from tampering the receiver. The same * thing could be done via freeze mechanism, but this one can also be unlocked |