Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 6eb5e5d

Browse files
committed
Merge pull request #3003 from dotnet-bot/from-tfs
Merge changes from TFS
2 parents dc7f09d + d747b85 commit 6eb5e5d

16 files changed

+75
-49
lines changed

src/gc/env/gcenv.structs.h

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,19 +102,6 @@ class EEThreadId
102102

103103
#ifndef _INC_WINDOWS
104104

105-
typedef union _LARGE_INTEGER {
106-
struct {
107-
#if BIGENDIAN
108-
int32_t HighPart;
109-
uint32_t LowPart;
110-
#else
111-
uint32_t LowPart;
112-
int32_t HighPart;
113-
#endif
114-
} u;
115-
int64_t QuadPart;
116-
} LARGE_INTEGER, *PLARGE_INTEGER;
117-
118105
#ifdef PLATFORM_UNIX
119106

120107
typedef struct _RTL_CRITICAL_SECTION {

src/gc/gc.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ inline BOOL ShouldTrackMovementForProfilerOrEtw()
3939
}
4040
#endif // defined(GC_PROFILING) || defined(FEATURE_EVENT_TRACE)
4141

42+
#if defined(BACKGROUND_GC) && defined(FEATURE_EVENT_TRACE)
43+
BOOL bgc_heap_walk_for_etw_p = FALSE;
44+
#endif //BACKGROUND_GC && FEATURE_EVENT_TRACE
45+
4246
#if defined(FEATURE_REDHAWK)
4347
#define MAYBE_UNUSED_VAR(v) v = v
4448
#else
@@ -15285,10 +15289,14 @@ void gc_heap::gc1()
1528515289
#if defined(VERIFY_HEAP) || (defined (FEATURE_EVENT_TRACE) && defined(BACKGROUND_GC))
1528615290
if (FALSE
1528715291
#ifdef VERIFY_HEAP
15292+
// Note that right now g_pConfig->GetHeapVerifyLevel always returns the same
15293+
// value. If we ever allow randomly adjusting this as the process runs,
15294+
// we cannot call it this way as joins need to match - we must have the same
15295+
// value for all heaps like we do with bgc_heap_walk_for_etw_p.
1528815296
|| (g_pConfig->GetHeapVerifyLevel() & EEConfig::HEAPVERIFY_GC)
1528915297
#endif
1529015298
#if defined(FEATURE_EVENT_TRACE) && defined(BACKGROUND_GC)
15291-
|| (ETW::GCLog::ShouldTrackMovementForEtw() && settings.concurrent)
15299+
|| (bgc_heap_walk_for_etw_p && settings.concurrent)
1529215300
#endif
1529315301
)
1529415302
{
@@ -15331,7 +15339,7 @@ void gc_heap::gc1()
1533115339
#ifdef BACKGROUND_GC
1533215340
assert (settings.concurrent == (uint32_t)(bgc_thread_id.IsCurrentThread()));
1533315341
#ifdef FEATURE_EVENT_TRACE
15334-
if (ETW::GCLog::ShouldTrackMovementForEtw() && settings.concurrent)
15342+
if (bgc_heap_walk_for_etw_p && settings.concurrent)
1533515343
{
1533615344
make_free_lists_for_profiler_for_bgc();
1533715345
}
@@ -16402,8 +16410,7 @@ int gc_heap::garbage_collect (int n)
1640216410
}
1640316411

1640416412
{
16405-
int gen_num_for_data = ((settings.condemned_generation < (max_generation - 1)) ?
16406-
(settings.condemned_generation + 1) : (max_generation + 1));
16413+
int gen_num_for_data = max_generation + 1;
1640716414
for (int i = 0; i <= gen_num_for_data; i++)
1640816415
{
1640916416
gc_data_per_heap.gen_data[i].size_before = generation_size (i);
@@ -31185,6 +31192,10 @@ void gc_heap::background_sweep()
3118531192
if (bgc_t_join.joined())
3118631193
#endif //MULTIPLE_HEAPS
3118731194
{
31195+
#ifdef FEATURE_EVENT_TRACE
31196+
bgc_heap_walk_for_etw_p = ETW::GCLog::ShouldTrackMovementForEtw();
31197+
#endif //FEATURE_EVENT_TRACE
31198+
3118831199
leave_spin_lock (&gc_lock);
3118931200

3119031201
#ifdef MULTIPLE_HEAPS

src/gc/gcpriv.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,12 @@ inline void FATAL_GC_ERROR()
141141

142142
#if defined (SYNCHRONIZATION_STATS) || defined (STAGE_STATS)
143143
#define BEGIN_TIMING(x) \
144-
LARGE_INTEGER x##_start; \
145-
x##_start = GCToOSInterface::QueryPerformanceCounter ()
144+
int64_t x##_start; \
145+
x##_start = GCToOSInterface::QueryPerformanceCounter()
146146

147147
#define END_TIMING(x) \
148-
LARGE_INTEGER x##_end; \
149-
x##_end = GCToOSInterface::QueryPerformanceCounter (); \
148+
int64_t x##_end; \
149+
x##_end = GCToOSInterface::QueryPerformanceCounter(); \
150150
x += x##_end - x##_start
151151

152152
#else

src/inc/corcompile.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1924,6 +1924,8 @@ class ICorCompileInfo
19241924

19251925
virtual BOOL AreAllClassesFullyLoaded(CORINFO_MODULE_HANDLE moduleHandle) = 0;
19261926
#endif
1927+
1928+
virtual BOOL HasCustomAttribute(CORINFO_METHOD_HANDLE method, LPCSTR customAttributeName) = 0;
19271929
};
19281930

19291931
/*****************************************************************************/

src/vm/appdomainstack.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class AppDomainStack
5555
public:
5656
AppDomainStack() : m_numEntries(0), m_pExtraStack(NULL), m_ExtraStackSize(0), m_dwOverridesCount(0), m_dwAsserts(0), m_dwThreadWideSpecialFlags(0xFFFFFFFF)
5757
{
58-
WRAPPER_NO_CONTRACT;
58+
LIMITED_METHOD_CONTRACT;
5959
FillEntries(m_pStack, ADSTACK_BLOCK_SIZE);
6060
}
6161

src/vm/classcompat.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ class MethodTableBuilder
634634
UINT idResWhy,
635635
mdMethodDef tokMethodDef)
636636
{
637-
WRAPPER_NO_CONTRACT;
637+
STANDARD_VM_CONTRACT;
638638
bmtError->resIDWhy = idResWhy;
639639
bmtError->dMethodDefInError = tokMethodDef;
640640
bmtError->szMethodNameForError = NULL;
@@ -647,7 +647,7 @@ class MethodTableBuilder
647647
UINT idResWhy,
648648
LPCUTF8 szMethodName)
649649
{
650-
WRAPPER_NO_CONTRACT;
650+
STANDARD_VM_CONTRACT;
651651
bmtError->resIDWhy = idResWhy;
652652
bmtError->dMethodDefInError = mdMethodDefNil;
653653
bmtError->szMethodNameForError = szMethodName;
@@ -659,15 +659,15 @@ class MethodTableBuilder
659659
UINT idResWhy,
660660
mdMethodDef tokMethodDef = mdMethodDefNil)
661661
{
662-
WRAPPER_NO_CONTRACT;
662+
STANDARD_VM_CONTRACT;
663663
BuildMethodTableThrowException(COR_E_TYPELOAD, idResWhy, tokMethodDef);
664664
}
665665

666666
inline VOID DECLSPEC_NORETURN BuildMethodTableThrowException(
667667
UINT idResWhy,
668668
LPCUTF8 szMethodName)
669669
{
670-
WRAPPER_NO_CONTRACT;
670+
STANDARD_VM_CONTRACT;
671671
BuildMethodTableThrowException(COR_E_TYPELOAD, idResWhy, szMethodName);
672672
}
673673

src/vm/compile.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2657,6 +2657,13 @@ BOOL CEECompileInfo::AreAllClassesFullyLoaded(CORINFO_MODULE_HANDLE moduleHandle
26572657

26582658
#endif // FEATURE_READYTORUN_COMPILER
26592659

2660+
BOOL CEECompileInfo::HasCustomAttribute(CORINFO_METHOD_HANDLE method, LPCSTR customAttributeName)
2661+
{
2662+
STANDARD_VM_CONTRACT;
2663+
2664+
MethodDesc * pMD = GetMethod(method);
2665+
return S_OK == pMD->GetMDImport()->GetCustomAttributeByName(pMD->GetMemberDef(), customAttributeName, NULL, NULL);
2666+
}
26602667

26612668
#define OMFConst_Read 0x0001
26622669
#define OMFConst_Write 0x0002

src/vm/compile.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,8 @@ class CEECompileInfo : public ICorCompileInfo
423423
BOOL AreAllClassesFullyLoaded(CORINFO_MODULE_HANDLE moduleHandle);
424424
#endif
425425

426+
BOOL HasCustomAttribute(CORINFO_METHOD_HANDLE method, LPCSTR customAttributeName);
427+
426428
//--------------------------------------------------------------------
427429
// ZapperLoaderModules and the ZapperLoaderModuleTable
428430
//

src/vm/i386/cgencpu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ struct EHContext {
226226

227227
inline void Init()
228228
{
229+
LIMITED_METHOD_CONTRACT;
229230
Eax = 0;
230231
Ebx = 0;
231232
Ecx = 0;

src/vm/jitinterface.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -406,33 +406,33 @@ class ICorMethodInfo_Hack
406406
class ICorModuleInfo_Hack
407407
{
408408
public:
409-
virtual void ICorModuleInfo_Hack_dummy() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
409+
virtual void ICorModuleInfo_Hack_dummy() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
410410
};
411411

412412
class ICorClassInfo_Hack
413413
{
414414
public:
415-
virtual void ICorClassInfo_Hack_dummy1() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
416-
virtual void ICorClassInfo_Hack_dummy2() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
417-
virtual void ICorClassInfo_Hack_dummy3() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
418-
virtual void ICorClassInfo_Hack_dummy4() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
419-
virtual void ICorClassInfo_Hack_dummy5() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
420-
virtual void ICorClassInfo_Hack_dummy6() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
421-
virtual void ICorClassInfo_Hack_dummy7() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
422-
virtual void ICorClassInfo_Hack_dummy8() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
423-
virtual void ICorClassInfo_Hack_dummy9() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
424-
virtual void ICorClassInfo_Hack_dummy10() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
425-
virtual void ICorClassInfo_Hack_dummy11() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
426-
virtual void ICorClassInfo_Hack_dummy12() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
427-
virtual void ICorClassInfo_Hack_dummy13() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
428-
virtual void ICorClassInfo_Hack_dummy14() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
415+
virtual void ICorClassInfo_Hack_dummy1() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
416+
virtual void ICorClassInfo_Hack_dummy2() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
417+
virtual void ICorClassInfo_Hack_dummy3() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
418+
virtual void ICorClassInfo_Hack_dummy4() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
419+
virtual void ICorClassInfo_Hack_dummy5() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
420+
virtual void ICorClassInfo_Hack_dummy6() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
421+
virtual void ICorClassInfo_Hack_dummy7() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
422+
virtual void ICorClassInfo_Hack_dummy8() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
423+
virtual void ICorClassInfo_Hack_dummy9() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
424+
virtual void ICorClassInfo_Hack_dummy10() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
425+
virtual void ICorClassInfo_Hack_dummy11() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
426+
virtual void ICorClassInfo_Hack_dummy12() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
427+
virtual void ICorClassInfo_Hack_dummy13() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
428+
virtual void ICorClassInfo_Hack_dummy14() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
429429

430430
virtual mdMethodDef __stdcall ICorClassInfo_Hack_getMethodDefFromMethod(CORINFO_METHOD_HANDLE hMethod) = 0;
431431
};
432432

433433
class ICorStaticInfo_Hack : public virtual ICorMethodInfo_Hack, public virtual ICorModuleInfo_Hack, public virtual ICorClassInfo_Hack
434434
{
435-
virtual void ICorStaticInfo_Hack_dummy() { WRAPPER_NO_CONTRACT; UNREACHABLE(); };
435+
virtual void ICorStaticInfo_Hack_dummy() { LIMITED_METHOD_CONTRACT; UNREACHABLE(); };
436436
};
437437

438438
#endif // FEATURE_CORECLR

0 commit comments

Comments
 (0)