On Thursday, 22 July 2021 at 18:56:43 UTC, Steven Schveighoffer wrote:
On 7/22/21 2:38 PM, apz28 wrote:
On Wednesday, 21 July 2021 at 20:39:54 UTC, Dukc wrote:
On Wednesday, 21 July 2021 at 14:15:51 UTC, Steven Schveighoffer wrote:
2. It's hard for me to see where the null dereference would be in that function (the `bool` implementation is pretty simple).


DMD complains about dereferences in three different lines. I suspect it's `this` reference that is `null`.

Look like DMD has some bug. If I changed this line https://github.com/apz28/dlang/blob/02989b94bfe306d723f2780e010c61f71f873cbe/source/pham/db/db_fbdatabase.d#L148


from: auto reader = FbXdrReader(null, response.data);
to: auto reader = FbXdrReader(fbConnection, response.data);

then the error go away. FbXdrReader constructor allows to accept null for that parameter. Is it "safe" means not allow to pass null?

I don't know what an FbConnection is, but it looks like you call something on it. Your code is immense, and github search really *really* sucks. So I can't get better information. But if it's a class, and that is a normal member, it is indeed dereferencing a null pointer.

-Steve

FbConnection is a class, FbXdrReader is a struct and for this call, response.data is not null & its' length will be greater than zero and FbConnection is not being used. So why DMD try to evaluate at compiled time hence error 1. Should not evaluate at compile time for this function call/construct 2. The error message is missing proper line # or nothing related to the module displayed in error message

https://github.com/apz28/dlang/blob/main/source/pham/db/db_fbbuffer.d#L527

Reply via email to