Что означает код HRESULT 0x88990014 (D2DERR_POP_CALL_DID_NOT_MATCH_PUSH)?

 
Предыдущий Следующий
D2DERR_LAYER_ALREADY_IN_USE D2DERR_WRONG_RESOURCE_DOMAIN

D2DERR_POP_CALL_DID_NOT_MATCH_PUSH

Что означает D2DERR_POP_CALL_DID_NOT_MATCH_PUSH

D2DERR_POP_CALL_DID_NOT_MATCH_PUSH (0x88990014) означает, что приложение вызвало pop другого типа, чем последний активный push: например, попыталось снять layer, когда сверху стека находится clip.

Что проверить

  • Трассируйте каждый PushLayer/PushAxisAlignedClip и соответствующий pop с типом операции и глубиной стека.
  • Проверьте early return, exception cleanup и условные ветви, где один push может пропускать свой парный pop.
  • Исправляйте LIFO-порядок; добавление произвольного extra-pop в конце кадра может только сместить ошибку.

Как подтвердить исправление

На всех control-flow paths stack layer/clip должен возвращаться к исходной глубине, а каждый pop — совпадать с последним push того же типа.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.