[#120465] [Ruby master Bug#20998] rb_str_locktmp() changes flags of frozen strings and string literals — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Issue #20998 has been reported by Eregon (Benoit Daloze).
17 messages
2025/01/03
[ruby-core:120518] [Ruby master Feature#20878] A new C API to create a String by adopting a pointer: `rb_enc_str_adopt(const char *ptr, long len, long capa, rb_encoding *enc)`
From:
"byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date:
2025-01-07 09:44:13 UTC
List:
ruby-core #120518
SXNzdWUgIzIwODc4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4N Cg0KDQo+IEl0IG5lZWQgbm90IG9ubHkgZnJlZSBmdW5jdGlvbiBidXQgYWxzbyByZWFsbG9jIGZ1 bmN0aW9uDQoNCk1heWJlIEkgd2Fzbid0IGNsZWFyLCBidXQgSSBteSBzdWdnZXN0aW9uIGlzIHRv IG9ubHkgdXNlIHRoZSBgZnJlZWAgZnVuY3Rpb24gdG8gZGV0ZWN0IGlmIGl0J3MgY29tcGF0aWJs ZSB3aXRoIGBydWJ5X3hmcmVlYCwgd2hpY2ggd2UgcHJlc3VtYmFibHkgY2FuIGtub3cgYXQgY29t cGlsZSB0aW1lLCBzbyBzb21ldGhpbmcgbGlrZToNCg0KYGBgYw0KcmJfZW5jX3N0cl9hZG9wdChj b25zdCBjaGFyICpwdHIsIGxvbmcgbGVuLCBsb25nIGNhcGEsIHJiX2VuY29kaW5nICplbmMsIHZv aWQgKiBmcmVlZnVuYyh2b2lkICopKQ0Kew0KICBpZiAoZnJlZWZ1bmMgIT0gcnVieV94ZnJlZSAm JiAoQ0FMQ19FWEFDVF9NQUxMT0NfU0laRSB8fCBmcmVlZnVuYyAhPSBmcmVlKSkgew0KICAgIC8v IGNvcHkgYW5kIHJldHVybg0KICB9DQogIGVsc2Ugew0KICAgIC8vIGFkb3B0IHRoZSBwb2ludGVy DQogIH0NCn0NCmBgYA0KDQpXZSBjb3VsZCBhbHNvIHVzZSB0aGUgYG1hbGxvY2AgZnVuY3Rpb24g aW5zdGVhZCBmb3IgdGhlIHNhbWUgZWZmZWN0Lg0KDQo+IElzIHRoZXJlIGEgcmVhbC13b3JsZCB1 c2UgY2FzZSB0byBtYWtlIGEgU3RyaW5nIHdpdGggYSBwb2ludGVyIGFsbG9jYXRlZCBvdXRzaWRl IG9mIHhtYWxsb2M/DQoNCkkgZG9uJ3QgcGVyc29uYWxseSBoYXZlIG9uZSwgYGBzbnByaW50ZmAg d2FzIG1lbnRpb25lZCwgYW5kIGl0IHNlZW1zIHJlYWxpc3RpYz8gQnV0IGBzbnByaW50ZmAgYnVm ZmVyIGdlbmVyYWxseSBhcmVuJ3QgdGhhdCBiaWcsIHNvIG1heWJlIGl0IGRvZXNuJ3QgbWF0dGVy IGFzIG11Y2g/DQoNCkFsc28gcGVyaGFwcyBAbWRhbGVzc2lvIHdvdWxkIGhhdmUgc29tZSBpbiBu b2tvZ2lyaT8NCg0KDQo+IHN1Z2dlc3RlZCB0byBpbnRyb2R1Y2UgdGhpcyBBUEkgYXMgYSBoaWRk ZW4gQVBJIG9ubHkgZm9yIGpzb24gZ2VtLCBpbnN0ZWFkIG9mIGludHJvZHVjaW5nIGl0IGFzIGFu IG9mZmljaWFsIG9uZS4NCg0KSSBkb24ndCB0aGluayBpdCB3b3VsZCBiZSBhIGdvb2QgcHJlY2Vk ZW50LCBnaXZlbiBganNvbmAgaXMgb25seSBhIGRlZmF1bHQgZ2VtLiBBbHNvIGJvdGggbm9rb2dp cmkgYW5kIHByaXNtIG1haW50YWluZXJzIGV4cHJlc3NlZCB0aGVpciBpbnRlcmVzdC4NCg0KDQo+ IEkgdGhpbmsgaXQgd291bGQgYmUgZWFzeSB0byBqdXN0IHN0cmljdGx5IGtlZXAgdGhlIHByZXJl cXVpc2l0ZSDigJxwdHIgTVVTVCBoYXZlIGJlZW4gYWxsb2NhdGVkIHdpdGggcnVieV94bWFsbG9j LuKAnSBhcyBvcmlnaW5hbGx5IHByb3Bvc2VkLg0KDQpJJ20gYWxzbyBPSyB3aXRoIHRoYXQuDQoN Cg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMjA4 Nzg6IEEgbmV3IEMgQVBJIHRvIGNyZWF0ZSBhIFN0cmluZyBieSBhZG9wdGluZyBhIHBvaW50ZXI6 IGByYl9lbmNfc3RyX2Fkb3B0KGNvbnN0IGNoYXIgKnB0ciwgbG9uZyBsZW4sIGxvbmcgY2FwYSwg cmJfZW5jb2RpbmcgKmVuYylgDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjA4 NzgjY2hhbmdlLTExMTMyMw0KDQoqIEF1dGhvcjogYnlyb290IChKZWFuIEJvdXNzaWVyKQ0KKiBT dGF0dXM6IE9wZW4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMj IyBDb250ZXh0DQoNCkEgY29tbW9uIHVzZSBjYXNlIHdoZW4gd3JpdGluZyBDIGV4dGVuc2lvbnMg aXMgdG8gZ2VuZXJhdGUgdGV4dCBvciBieXRlcyBpbnRvIGEgYnVmZmVyLCBhbmQgdG8gcmV0dXJu IGl0IGJhY2sNCndyYXBwZWQgaW50byBhIFJ1YnkgU3RyaW5nLiBFeGFtcGxlcyBhcmUgYEpTT04u Z2VuZXJhdGUob2JqKSAtPiBTdHJpbmdgLCBhbmQgYWxsIG90aGVyIGZvcm1hdCBzZXJpYWxpemVy cywNCmNvbXByZXNzaW9uIGxpYnJhcmllcyBzdWNoIGFzIGBaTGliLmRlZmxhdGVgLCBldGMsIGJ1 dCBhbHNvIG1ldGhvZHMgc3VjaCBhcyBgVGltZS5zdHJmdGltZWAsIA0KDQojIyMgQ3VycmVudCBT b2x1dGlvbg0KDQojIyMjIFdvcmsgaW4gYSBidWZmZXIgYW5kIGNvcHkgdGhlIHJlc3VsdA0KDQpU aGUgbW9zdCBvZnRlbiB1c2VkIHNvbHV0aW9uIGlzIHRvIHdvcmsgd2l0aCBhIG5hdGl2ZSBidWZm ZXIgYW5kIHRvIG1hbmFnZSBhIG5hdGl2ZSBhbGxvY2F0ZWQgYnVmZmVyLA0KYW5kIG9uY2UgdGhl IGdlbmVyYXRpb24gaXMgZG9uZSwgY2FsbCBgcmJfc3RyX25ldypgIHRvIGNvcHkgdGhlIHJlc3Vs dCBpbnNpZGUgbWVtb3J5IG1hbmFnZWQgYnkgUnVieS4NCg0KSXQgd29ya3MsIGJ1dCBpc24ndCB2 ZXJ5IGVmZmljaWVudCBiZWNhdXNlIGl0IGNhdXNlIGFuIGV4dHJhIGNvcHkgYW5kIGFuIGV4dHJh IGBmcmVlKClgLg0KDQpPbiBgcnVieS9qc29uYCBtYWNyby1iZW5jaG1hcmtzLCB0aGlzIHJlcHJl c2VudCBhcm91bmQgNSUgb2YgdGhlIHRpbWUgc3BlbnQgaW4gYEpTT04uZ2VuZXJhdGVgLg0KDQpg YGBjDQpzdGF0aWMgdm9pZCBmYnVmZmVyX2ZyZWUoRkJ1ZmZlciAqZmIpDQp7DQogICAgaWYgKGZi LT5wdHIgJiYgZmItPnR5cGUgPT0gRkJVRkZFUl9IRUFQX0FMTE9DQVRFRCkgew0KICAgICAgICBy dWJ5X3hmcmVlKGZiLT5wdHIpOw0KICAgIH0NCn0NCg0Kc3RhdGljIFZBTFVFIGZidWZmZXJfdG9f cyhGQnVmZmVyICpmYikNCnsNCiAgICBWQUxVRSByZXN1bHQgPSByYl91dGY4X3N0cl9uZXcoRkJV RkZFUl9QVFIoZmIpLCBGQlVGRkVSX0xFTihmYikpOw0KICAgIGZidWZmZXJfZnJlZShmYik7DQog ICAgcmV0dXJuIHJlc3VsdDsNCn0NCmBgYA0KDQojIyMjIFdvcmsgaW5zaWRlIFJTdHJpbmcgYWxs b2NhdGVkIG1lbW9yeQ0KDQpBbm90aGVyIHdheSB0aGlzIGlzIGN1cnJlbnRseSBkb25lLCBpcyB0 byBhbGxvY2F0ZSBhbiBgUlN0cmluZ2AgdXNpbmcgYHJiX3N0cl9idWZfbmV3YCwNCmFuZCB3cml0 ZSBpbnRvIGl0IHdpdGggdmFyaW91cyBmdW5jdGlvbnMgc3VjaCBhcyBgcmJfc3RyX2NhdGZgLA0K b3Igd3JpdGluZyBwYXN0IGBSU3RyaW5nLmxlbmAgdGhyb3VnaCBgUlNUUklOR19QVFJgIGFuZCB0 aGVuIHJlc2l6ZSBpdCB3aXRoIGByYl9zdHJfc2V0X2xlbmAuDQoNClRoZSBkb3duc2lkZSB3aXRo IHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBpdCBjb250YWlucyBhIGxvdCBvZiBpbmVmZmljaWVuY2ll cywgYXMgYHJiX3N0cl9zZXRfbGVuYCB3aWxsIHBlcmZvcm0NCm51bWVyb3VzIHNhZmV0eSBjaGVj a3MsIGNvbXB1dGUgY29kZXJhbmdlLCBhbmQgd3JpdGUgdGhlIHN0cmluZyB0ZXJtaW5hdG9yIG9u IGV2ZXJ5IGludm9jYXRpb24uDQoNCkFub3RoZXIgbWFqb3IgaW5uZWZpY2llbmN5IGlzIHRoYXQg dGhpcyBBUEkgbWFrZSBpdCBoYXJkIHRvIGJlIGluIGNvbnRyb2wgb2YgdGhlIGJ1ZmZlcg0KZ3Jv d3RoLCBzbyBpdCBjYW4gcmVzdWx0IGluIGEgbG90IG1vcmUgYHJlYWxsb2MoKWAgY2FsbHMgdGhh biBtYW51YWxseSBtYW5hZ2luZyB0aGUgYnVmZmVyLg0KDQpUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5 IGBLZXJuZWwjc3ByaW50ZmAsIGBUaW1lI3N0cmZ0aW1lYCBldGMsIGFuZCB3aGVuIEkgYXR0ZW1w dGVkIHRvIGltcHJvdmUgYFRpbWUjc3RyZnRpbWVgDQpwZXJmb3JtYW5jZSwgdGhpcyBwcm9ibGVt IHNob3dlZCB1cCBhcyB0aGUgYmlnZ2VzdCBib3R0bGVuZWNrOg0KDQogIC0gaHR0cHM6Ly9naXRo dWIuY29tL3J1YnkvcnVieS9wdWxsLzExNTQ3DQogIC0gaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkv cnVieS9wdWxsLzExNTQ0DQogIC0gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzEx NTQyDQoNCiMjIyBQcm9wb3NlZCBBUEkNCg0KSSB0aGluayBhIG1vcmUgZWZmY2llbnQgd2F5IHRv IGRvIHRoaXMgd291bGQgYmUgdG8gd29yayB3aXRoIGEgbmF0aXZlIGJ1ZmZlciwgYW5kIHRoZW4g YnVpbGQgYSBSU3RyaW5nDQp0aGF0ICJhZG9wdCIgdGhlIG1lbW9yeSByZWdpb24uDQoNClRlY2hu aWNhbGx5LCB5b3UgY2FuIGN1cnJlbnRseSBkbyB0aGlzIGJ5IHJlYWNoaW5nIGRpcmVjdGx5IGlu dG8gYFJTdHJpbmdgIG1lbWJlcnMsIGJ1dCBJIGRvbid0IHRoaW5rIGl0J3MgY2xlYW4sDQphbmQg YSBkZWRpY2F0ZWQgQVBJIHdvdWxkIGJlIHByZWZlcmFibGU6DQoNCmBgYGMNCi8qKg0KICogU2lt aWxhciB0byByYl9zdHJfbmV3KCksIGJ1dCBpdCBhZG9wdHMgdGhlIHBvaW50ZXIgaW5zdGVhZCBv ZiBjb3B5aW5nLg0KICoNCiAqIEBwYXJhbVtpbl0gIHB0ciAgICAgICAgICAgICBBIG1lbW9yeSBy ZWdpb24gb2YgYGNhcGFgIGJ5dGVzIGxlbmd0aC4gTVVTVCBoYXZlIGJlZW4gYWxsb2NhdGVkIHdp dGggYHJ1YnlfeG1hbGxvY2ANCiAqIEBwYXJhbVtpbl0gIGxlbiAgICAgICAgICAgICBMZW5ndGgg IG9mIHRoZSBzdHJpbmcsICBpbiBieXRlcywgIG5vdCBpbmNsdWRpbmcgIHRoZQ0KICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0aW5nIE5VTCBjaGFyYWN0ZXIsIG5vdCBpbmNs dWRpbmcgZXh0cmEgY2FwYWNpdHkuDQogKiBAcGFyYW1baW5dICBjYXBhICAgICAgICAgICAgVGhl IHVzYWJsZSBsZW5ndGggb2YgYHB0cmAsIGluIGJ5dGVzLCAgaW5jbHVkaW5nICB0aGUNCiAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGluZyBOVUwgY2hhcmFjdGVyLg0KICog QHBhcmFtW2luXSAgZW5jICAgICAgICAgICAgIEVuY29kaW5nIG9mIGBwdHJgLg0KICogQGV4Y2Vw dGlvbiAgcmJfZUFyZ0Vycm9yICAgIGBsZW5gIGlzIG5lZ2F0aXZlLg0KICogQHJldHVybiAgICAg QW4gaW5zdGFuY2UgIG9mIDo6cmJfY1N0cmluZywgIG9mIGBsZW5gICBieXRlcyBsZW5ndGgsIGBj YXBhIC0gMWAgYnl0ZXMgY2FwYWNpdHksDQogKiAgICAgICAgICAgICBhbmQgb2YgYGVuY2AgZW5j b2RpbmcuDQogKiBAcHJlICAgICAgICBBdCAgbGVhc3QgIGBjYXBhYCBieXRlcyAgb2YgIGNvbnRp bnVvdXMgIG1lbW9yeSByZWdpb24gIHNoYWxsICBiZQ0KICogICAgICAgICAgICAgYWNjZXNzaWJs ZSB2aWEgYHB0cmAuDQogKiBAcHJlICAgICAgICBgcHRyYCBNVVNUIGhhdmUgYmVlbiBhbGxvY2F0 ZWQgd2l0aCBgcnVieV94bWFsbG9jYC4NCiAqIEBwcmUgICAgICAgIGBwdHJgIE1VU1Qgbm90IGJl IG1hbnVhbGx5IGZyZWVkIGFmdGVyIGByYl9lbmNfc3RyX2Fkb3B0YCBoYXMgYmVlbiBjYWxsZWQu DQogKiBAbm90ZSAgICAgICBgZW5jYCBjYW4gYmUgYSAgbnVsbCBwb2ludGVyLiAgSXQgY2FuIGFs c28gYmUgIHNlZW4gYXMgYSByb3V0aW5lDQogKiAgICAgICAgICAgICBpZGVudGljYWwgdG8gcmJf dXNhc2NpaV9zdHJfbmV3KCkgdGhlbi4NCiAqLw0KcmJfZW5jX3N0cl9hZG9wdChjb25zdCBjaGFy ICpwdHIsIGxvbmcgbGVuLCBsb25nIGNhcGEsIHJiX2VuY29kaW5nICplbmMpOw0KYGBgDQoNCkFu IGFsdGVybmF0aXZlIHRvIHRoZSBgYWRvcHRgIHRlcm0sIGNvdWxkIGJlIGBtb3ZlYC4NCg0KDQot LS1GaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDYXB0dXJlIGTigJllzIFj cmFuIDIwMjQtMTItMTEgYcyAIDExLjAzLjA4LnBuZyAoMjUwIEtCKQ0KDQoNCi0tIA0KaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVi eS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVh dmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxh bmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLw==