On 7/21/21 7:56 AM, apz28 wrote:
On Wednesday, 21 July 2021 at 11:52:39 UTC, apz28 wrote:
On Wednesday, 21 July 2021 at 04:52:44 UTC, Mathias LANG wrote:


It seems the compiler is doing extra analysis and seeing that a null pointer is being dereferenced. Can you provide the code for "pham\db\db_skdatabase.d" at L138 through 140 ?

    ```d
    package(pham.db):  // Line# 133
        final DbReadBuffer acquireSocketReadBuffer(size_t capacity = DbDefaultSize.socketReadBufferLength) nothrow @safe
        {
            version (TraceFunction) dgFunctionTrace();

            if (_socketReadBuffer is null)
                _socketReadBuffer = createSocketReadBuffer(capacity);
            return _socketReadBuffer;
        }
    ```

The entire codes is available from github
https://github.com/apz28/dlang/blob/main/source/pham/db/db_skdatabase.d#L138

1. That filename is totally wrong, or the function name is totally wrong. ddemangle says the function is `@safe bool[] pham.db.fbdatabase.FbArray.readArrayImpl!(bool).readArrayImpl(pham.db.database.DbNameColumn)` which seems to be located [here](https://github.com/apz28/dlang/blob/02989b94bfe306d723f2780e010c61f71f873cbe/source/pham/db/db_fbdatabase.d#L142) But the line numbers also don't match. maybe an inlining issue?

2. It's hard for me to see where the null dereference would be in that function (the `bool` implementation is pretty simple).

-Steve

Reply via email to