1. C++ / Говнокод #6277

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    ID3DBlob* pErrorBlob;
        hr = D3DX11CompileFromFile( szFileName, NULL, NULL, szEntryPoint, szShaderModel, 
            dwShaderFlags, 0, NULL, ppBlobOut, &pErrorBlob, NULL );
        if( FAILED(hr) )
        {
            if( pErrorBlob != NULL )
                OutputDebugStringA( (char*)pErrorBlob->GetBufferPointer() );
            if( pErrorBlob ) pErrorBlob->Release();
            return hr;
        }
        if( pErrorBlob ) pErrorBlob->Release();

    Текст примера из MS DXSDK. Проверка - а вдруг pErrorBlob самоуничтожается после прочтения?

    Запостил: CHayT, 07 Апреля 2011

    Комментарии (9) RSS

    • А почему без пруфлинка ?
      Ответить
      • Лень лезть в msdn. Пример называется Tutorial 03: Shaders
        Ответить
    • Да просто копипаста.
      Ответить
    • а в чем собственно подвох? если результат выполнения ф-ии - фейл, то ожидать в принципе от нее чего угодно можно, в т.ч. нулевой указатель вместо лога.
      Ответить
      • а, сорри, не заметил просто что дважды одно и то же условие проверяется
        Ответить
    • Бро, а ты тож с гейдева http://www.gamedev.ru/forum/
      Ответить
    • > а вдруг pErrorBlob самоуничтожается после прочтения?

      Гораздо страшнее, когда объект самовозрождается после уничтожения.
      Ответить
    • > объект самовозрождается после уничтожения
      Эх, нахлынули воспоминания...
      https://www.youtube.com/watch?v=1d9i398aTs4
      Ответить

    Добавить комментарий