Skip to content

Commit 7d45c90

Browse files
#1859 Fix assert when using set_var for query with one cascade term
1 parent 094707c commit 7d45c90

File tree

5 files changed

+35
-3
lines changed

5 files changed

+35
-3
lines changed

distr/flecs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28631,7 +28631,7 @@ struct field_ptrs {
2863128631
fields_[index].ptr = ecs_field_w_size(iter, sizeof(A),
2863228632
static_cast<int8_t>(index));
2863328633
fields_[index].is_ref = false;
28634-
ecs_assert(iter->sources[index] == 0, ECS_INTERNAL_ERROR, NULL);
28634+
// ecs_assert(iter->sources[index] == 0, ECS_INTERNAL_ERROR, NULL);
2863528635
populate_self(iter, index + 1, comps ...);
2863628636
}
2863728637

include/flecs/addons/cpp/delegate.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ struct field_ptrs {
105105
fields_[index].ptr = ecs_field_w_size(iter, sizeof(A),
106106
static_cast<int8_t>(index));
107107
fields_[index].is_ref = false;
108-
ecs_assert(iter->sources[index] == 0, ECS_INTERNAL_ERROR, NULL);
108+
// ecs_assert(iter->sources[index] == 0, ECS_INTERNAL_ERROR, NULL);
109109
populate_self(iter, index + 1, comps ...);
110110
}
111111

test/cpp/project.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -986,6 +986,7 @@
986986
"any_wildcard",
987987
"cascade",
988988
"cascade_w_relationship",
989+
"cascade_w_set_var",
989990
"up_w_type",
990991
"cascade_w_type",
991992
"cascade_desc",

test/cpp/src/QueryBuilder.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2940,6 +2940,32 @@ void QueryBuilder_cascade_w_relationship(void) {
29402940
test_int(count, 3);
29412941
}
29422942

2943+
void QueryBuilder_cascade_w_set_var(void) {
2944+
flecs::world ecs;
2945+
2946+
flecs::entity sun = ecs.entity()
2947+
.set<Position>({1, 2});
2948+
2949+
flecs::entity earth = ecs.entity()
2950+
.child_of(sun);
2951+
2952+
flecs::query q = ecs.query_builder<const Position*>()
2953+
.term_at(0)
2954+
.cascade()
2955+
.build();
2956+
2957+
int32_t count = 0;
2958+
q.set_var(0, earth).each([&](flecs::entity e, const Position* p) {
2959+
count ++;
2960+
test_assert(e == earth);
2961+
test_assert(p != nullptr);
2962+
test_int(p->x, 1);
2963+
test_int(p->y, 2);
2964+
});
2965+
2966+
test_int(count, 1);
2967+
}
2968+
29432969
void QueryBuilder_up_w_type(void) {
29442970
flecs::world ecs;
29452971

test/cpp/src/main.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -952,6 +952,7 @@ void QueryBuilder_create_w_no_template_args(void);
952952
void QueryBuilder_any_wildcard(void);
953953
void QueryBuilder_cascade(void);
954954
void QueryBuilder_cascade_w_relationship(void);
955+
void QueryBuilder_cascade_w_set_var(void);
955956
void QueryBuilder_up_w_type(void);
956957
void QueryBuilder_cascade_w_type(void);
957958
void QueryBuilder_cascade_desc(void);
@@ -5370,6 +5371,10 @@ bake_test_case QueryBuilder_testcases[] = {
53705371
"cascade_w_relationship",
53715372
QueryBuilder_cascade_w_relationship
53725373
},
5374+
{
5375+
"cascade_w_set_var",
5376+
QueryBuilder_cascade_w_set_var
5377+
},
53735378
{
53745379
"up_w_type",
53755380
QueryBuilder_up_w_type
@@ -8202,7 +8207,7 @@ static bake_test_suite suites[] = {
82028207
"QueryBuilder",
82038208
QueryBuilder_setup,
82048209
NULL,
8205-
179,
8210+
180,
82068211
QueryBuilder_testcases,
82078212
1,
82088213
QueryBuilder_params

0 commit comments

Comments
 (0)