msvcr80: Add _FindAndUnlinkFrame implementation.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2016-03-16 21:01:55 +01:00 committed by Alexandre Julliard
parent 0204517401
commit 29f547d2ce
10 changed files with 37 additions and 9 deletions

View File

@ -1,7 +1,7 @@
@ cdecl _CreateFrameInfo(ptr ptr) ucrtbase._CreateFrameInfo
@ stdcall _CxxThrowException(long long) ucrtbase._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() ucrtbase._EH_prolog
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr) ucrtbase._FindAndUnlinkFrame
@ stub _GetImageBase
@ stub _GetThrowImageBase
@ cdecl -arch=i386,x86_64,arm _IsExceptionObjectToBeDestroyed(ptr) ucrtbase._IsExceptionObjectToBeDestroyed

View File

@ -525,7 +525,7 @@
@ cdecl _CreateFrameInfo(ptr ptr)
@ stdcall _CxxThrowException(long long)
@ cdecl -arch=i386 -norelay _EH_prolog()
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr)
@ cdecl _Getdays()
@ cdecl _Getmonths()
@ cdecl _Gettnames()

View File

@ -846,7 +846,7 @@
@ stdcall _CxxThrowException(long long)
@ cdecl -arch=i386 -norelay _EH_prolog()
@ stub -arch=arm _FPE_Raise
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr)
@ stub -arch=win64 _GetImageBase
@ stub -arch=win64 _GetThrowImageBase
@ cdecl _Getdays()

View File

@ -830,7 +830,7 @@
@ cdecl -arch=i386 -norelay _EH_prolog()
@ stub -arch=arm _FPE_Raise
@ stub _FCbuild
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr)
@ stub -arch=win64 _GetImageBase
@ stub -arch=win64 _GetThrowImageBase
@ cdecl _Getdays()

View File

@ -824,7 +824,7 @@
@ cdecl -arch=i386 -norelay _EH_prolog() msvcr120._EH_prolog
@ stub -arch=arm _FPE_Raise
@ stub _FCbuild
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr) msvcr120._FindAndUnlinkFrame
@ stub -arch=win64 _GetImageBase
@ stub -arch=win64 _GetThrowImageBase
@ cdecl _Getdays() msvcr120._Getdays

View File

@ -155,7 +155,7 @@
@ cdecl _CreateFrameInfo(ptr ptr)
@ stdcall _CxxThrowException(long long)
@ cdecl -arch=i386 -norelay _EH_prolog()
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr)
@ stub -arch=win64 _GetImageBase
@ stub -arch=win64 _GetThrowImageBase
@ cdecl _Getdays()

View File

@ -152,7 +152,7 @@
@ cdecl _CreateFrameInfo(ptr ptr)
@ stdcall _CxxThrowException(long long)
@ cdecl -arch=i386 -norelay _EH_prolog()
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr)
@ cdecl _Getdays()
@ cdecl _Getmonths()
@ cdecl _Gettnames()

View File

@ -341,3 +341,31 @@ frame_info* CDECL _CreateFrameInfo(frame_info *fi, void *obj)
fi->object = obj;
return fi;
}
/*********************************************************************
* _FindAndUnlinkFrame (MSVCR80.@)
*/
void CDECL _FindAndUnlinkFrame(frame_info *fi)
{
thread_data_t *data = msvcrt_get_thread_data();
frame_info *cur = data->frame_info_head;
TRACE("(%p)\n", fi);
if (cur == fi)
{
data->frame_info_head = cur->next;
return;
}
for (; cur->next; cur = cur->next)
{
if (cur->next == fi)
{
cur->next = fi->next;
return;
}
}
ERR("frame not found, native crashes in this case\n");
}

View File

@ -24,7 +24,7 @@
@ stub _FCbuild
@ stub _FCmulcc
@ stub _FCmulcr
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr)
@ stub _GetImageBase
@ stub _GetThrowImageBase
@ cdecl _Getdays()

View File

@ -1,7 +1,7 @@
@ cdecl _CreateFrameInfo(ptr ptr) ucrtbase._CreateFrameInfo
@ stdcall _CxxThrowException(long long) ucrtbase._CxxThrowException
@ cdecl -arch=i386 -norelay _EH_prolog() ucrtbase._EH_prolog
@ stub _FindAndUnlinkFrame
@ cdecl _FindAndUnlinkFrame(ptr) ucrtbase._FindAndUnlinkFrame
@ cdecl -arch=i386,x86_64,arm _IsExceptionObjectToBeDestroyed(ptr) ucrtbase._IsExceptionObjectToBeDestroyed
@ stub _NLG_Dispatch2
@ stub _NLG_Return