Skip to content

Commit 75d39b4

Browse files
committed
RowSet escaping pointer fix
1 parent 6b7a999 commit 75d39b4

2 files changed

Lines changed: 4 additions & 6 deletions

File tree

freetds/test.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ void example() {
3434
auto db = createDatabase("freetds://10.211.55.3:1433/test?username=sa&password=admin");
3535
auto rows = db.query("SELECT 1,2,'abc'").rows;
3636
foreach (r; rows) {
37-
for(int c = 0; c != r.columns; ++c) writeln("column: ",c,", value: ",r[c].as!string);
37+
for(int c = 0; c != r.width; ++c) writeln("column: ",c,", value: ",r[c].as!string);
3838
}
3939
}
4040

src/std/database/front.d

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -501,13 +501,11 @@ struct BasicRow(D,P) {
501501
auto opIndex(Column column) {return opIndex(column.idx);}
502502

503503
Value opIndex(size_t idx) {
504-
auto result = rows_.result_;
504+
auto result = &rows_.result_;
505505
// needs work
506506
// sending a ptr to cell instead of reference (dangerous)
507-
auto cell = Cell(&result, &result.data_.bind[idx]);
508-
return Value(
509-
&result,
510-
cell);
507+
auto cell = Cell(result, &result.data_.bind[idx]);
508+
return Value(result, cell);
511509
}
512510
}
513511

0 commit comments

Comments
 (0)