https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2021-10-18T06:29:07Z
Ruby Issue Tracking System
Ruby master - Feature #18253: `ID` in `rb_id_table_foreach_with_replace`
https://bugs.ruby-lang.org/issues/18253?journal_id=94159
2021-10-18T06:29:07Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul></ul><p>A patch to remove unused arguments.</p>
<pre><code class="diff syntaxhl" data-language="diff"><span class="gh">diff --git c/gc.c i/gc.c
index fdd4ac5eb38..595ce038cbc 100644
</span><span class="gd">--- c/gc.c
</span><span class="gi">+++ i/gc.c
</span><span class="p">@@ -9757,7 +9757,7 @@</span> gc_ref_update_imemo(rb_objspace_t *objspace, VALUE obj)
}
static enum rb_id_table_iterator_result
<span class="gd">-check_id_table_move(ID id, VALUE value, void *data)
</span><span class="gi">+check_id_table_move(VALUE value, void *data)
</span> {
rb_objspace_t *objspace = (rb_objspace_t *)data;
<span class="p">@@ -9822,7 +9822,7 @@</span> update_m_tbl(rb_objspace_t *objspace, struct rb_id_table *tbl)
}
static enum rb_id_table_iterator_result
<span class="gd">-update_cc_tbl_i(ID id, VALUE ccs_ptr, void *data)
</span><span class="gi">+update_cc_tbl_i(VALUE ccs_ptr, void *data)
</span> {
rb_objspace_t *objspace = (rb_objspace_t *)data;
struct rb_class_cc_entries *ccs = (struct rb_class_cc_entries *)ccs_ptr;
<span class="p">@@ -9855,7 +9855,7 @@</span> update_cc_tbl(rb_objspace_t *objspace, VALUE klass)
}
static enum rb_id_table_iterator_result
<span class="gd">-update_cvc_tbl_i(ID id, VALUE cvc_entry, void *data)
</span><span class="gi">+update_cvc_tbl_i(VALUE cvc_entry, void *data)
</span> {
struct rb_cvar_class_tbl_entry *entry;
<span class="gh">diff --git c/id_table.c i/id_table.c
index b2ba6fae89e..365ad9c1da3 100644
</span><span class="gd">--- c/id_table.c
</span><span class="gi">+++ i/id_table.c
</span><span class="p">@@ -268,13 +268,13 @@</span> rb_id_table_delete(struct rb_id_table *tbl, ID id)
}
void
<span class="gd">-rb_id_table_foreach_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, rb_id_table_update_callback_func_t *replace, void *data)
</span><span class="gi">+rb_id_table_foreach_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_callback_func_t *replace, void *data)
</span> {
int i, capa = tbl->capa;
for (i=0; i<capa; i++) {
if (ITEM_KEY_ISSET(tbl, i)) {
<span class="gd">- enum rb_id_table_iterator_result ret = (*func)((ID)0, tbl->items[i].val, data);
</span><span class="gi">+ enum rb_id_table_iterator_result ret = (*func)(tbl->items[i].val, data);
</span> assert(ITEM_GET_KEY(tbl, i));
if (ret == ID_TABLE_REPLACE) {
<span class="gh">diff --git c/id_table.h i/id_table.h
index f3dc681d176..f353184311e 100644
</span><span class="gd">--- c/id_table.h
</span><span class="gi">+++ i/id_table.h
</span><span class="p">@@ -30,7 +30,7 @@</span> typedef enum rb_id_table_iterator_result rb_id_table_update_callback_func_t(ID *
typedef enum rb_id_table_iterator_result rb_id_table_foreach_func_t(ID id, VALUE val, void *data);
typedef enum rb_id_table_iterator_result rb_id_table_foreach_values_func_t(VALUE val, void *data);
void rb_id_table_foreach(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data);
<span class="gd">-void rb_id_table_foreach_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, rb_id_table_update_callback_func_t *replace, void *data);
</span><span class="gi">+void rb_id_table_foreach_with_replace(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, rb_id_table_update_callback_func_t *replace, void *data);
</span> void rb_id_table_foreach_values(struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data);
#endif /* RUBY_ID_TABLE_H */
</code></pre>
Ruby master - Feature #18253: `ID` in `rb_id_table_foreach_with_replace`
https://bugs.ruby-lang.org/issues/18253?journal_id=95059
2021-12-02T20:55:13Z
tenderlovemaking (Aaron Patterson)
tenderlove@ruby-lang.org
<ul><li><strong>Assignee</strong> changed from <i>tenderlovemaking (Aaron Patterson)</i> to <i>nobu (Nobuyoshi Nakada)</i></li></ul><p>I don't think this was intentional. Nobu, can you apply the patch? (Or I can)</p>
Ruby master - Feature #18253: `ID` in `rb_id_table_foreach_with_replace`
https://bugs.ruby-lang.org/issues/18253?journal_id=95064
2021-12-02T23:25:45Z
hsbt (Hiroshi SHIBATA)
hsbt@ruby-lang.org
<ul><li><strong>Tracker</strong> changed from <i>Misc</i> to <i>Feature</i></li></ul>
Ruby master - Feature #18253: `ID` in `rb_id_table_foreach_with_replace`
https://bugs.ruby-lang.org/issues/18253?journal_id=95075
2021-12-03T03:08:50Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul></ul><p>Which patch, passing the ID, or removing ID argument?</p>
Ruby master - Feature #18253: `ID` in `rb_id_table_foreach_with_replace`
https://bugs.ruby-lang.org/issues/18253?journal_id=96132
2022-01-24T23:41:02Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li></ul><p>Applied in changeset <a class="changeset" title="`ID` in `rb_id_table_foreach_with_replace` [Feature #18253] Pass the `ID` from `rb_id_table_fore..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/530e485265dac6e2aea1d587a4a79a314cc772cf">git|530e485265dac6e2aea1d587a4a79a314cc772cf</a>.</p>
<hr>
<p><code>ID</code> in <code>rb_id_table_foreach_with_replace</code> [Feature <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: `ID` in `rb_id_table_foreach_with_replace` (Closed)" href="https://bugs.ruby-lang.org/issues/18253">#18253</a>]</p>
<p>Pass the <code>ID</code> from <code>rb_id_table_foreach_with_replace</code> to callback<br>
functions.</p>