Skip to content

Commit 3d6d9dd

Browse files
committed
Merge branch 'main' of https://github.com/nanoframework/nf-interpreter into develop
2 parents d776d5e + 2c22f7e commit 3d6d9dd

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

src/CLR/CorLib/corlib_native_System_Guid.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,8 @@
33
// Portions Copyright (c) Microsoft Corporation. All rights reserved.
44
// See LICENSE file in the project root for full license information.
55
//
6-
#include "CorLib.h"
76

8-
//
9-
// Generate a new GUID
10-
//
11-
// Based on the version 4 GUID (random)
12-
// http://guid.one/guid/make
7+
#include "CorLib.h"
138

149
HRESULT Library_corlib_native_System_Guid::GenerateNewGuid___STATIC__SZARRAY_U1(CLR_RT_StackFrame &stack)
1510
{
@@ -20,14 +15,19 @@ HRESULT Library_corlib_native_System_Guid::GenerateNewGuid___STATIC__SZARRAY_U1(
2015
CLR_RT_HeapBlock &top = stack.PushValueAndClear();
2116

2217
// Create a array of 16 bytes on top of stack to return
23-
NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance(top, 16, g_CLR_RT_WellKnownTypes.UInt8));
18+
NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance(top, 16, g_CLR_RT_WellKnownTypes.m_UInt8));
2419
buf = top.DereferenceArray()->GetFirstElement();
2520

2621
rand.Initialize();
27-
rand.NextBytes(buf, 16); // fill with random numbers
2822

29-
buf[7] = (buf[7] & 0x0f) | 0x40; // Set verion
30-
buf[9] = (buf[7] & 0x3f) | 0x80; // Set variant
23+
// Generate 16 random bytes for the GUID
24+
rand.NextBytes(buf, 16);
25+
26+
// Set the version (version 4, bits 12-15 of time_hi_and_version)
27+
buf[7] = (buf[7] & 0x0F) | 0x40;
28+
29+
// Set the variant (the two most significant bits of clock_seq_hi_and_reserved must be 10)
30+
buf[8] = (buf[8] & 0x3F) | 0x80;
3131

3232
NANOCLR_NOCLEANUP();
3333
}

src/CLR/Debugger/Debugger.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -999,11 +999,11 @@ bool CLR_DBG_Debugger::Monitor_WriteMemory(WP_Message *msg)
999999
NATIVE_PROFILE_CLR_DEBUGGER();
10001000

10011001
auto *cmd = (CLR_DBG_Commands_Monitor_WriteMemory *)msg->m_payload;
1002-
CLR_DBG_Commands_Monitor_WriteMemory_Reply cmdReply;
1002+
CLR_DBG_Commands_Monitor_WriteMemory_Reply errorCode = AccessMemoryErrorCode_NoError;
10031003

1004-
g_CLR_DBG_Debugger->AccessMemory(cmd->address, cmd->length, cmd->data, AccessMemory_Write, &cmdReply);
1004+
g_CLR_DBG_Debugger->AccessMemory(cmd->address, cmd->length, cmd->data, AccessMemory_Write, &errorCode);
10051005

1006-
WP_ReplyToCommand(msg, true, false, &cmdReply, sizeof(cmdReply));
1006+
WP_ReplyToCommand(msg, errorCode == AccessMemoryErrorCode_NoError, false, &errorCode, sizeof(errorCode));
10071007

10081008
return true;
10091009
}
@@ -1013,13 +1013,12 @@ bool CLR_DBG_Debugger::Monitor_CheckMemory(WP_Message *msg)
10131013
NATIVE_PROFILE_CLR_DEBUGGER();
10141014

10151015
auto *cmd = (CLR_DBG_Commands_Monitor_CheckMemory *)msg->m_payload;
1016-
CLR_DBG_Commands_Monitor_CheckMemory_Reply cmdReply;
1017-
uint32_t errorCode;
1016+
CLR_DBG_Commands_Monitor_CheckMemory_Reply errorCode = AccessMemoryErrorCode_NoError;
10181017

10191018
g_CLR_DBG_Debugger
1020-
->AccessMemory(cmd->address, cmd->length, (unsigned char *)&cmdReply, AccessMemory_Check, &errorCode);
1019+
->AccessMemory(cmd->address, cmd->length, (unsigned char *)&errorCode, AccessMemory_Check, &errorCode);
10211020

1022-
WP_ReplyToCommand(msg, errorCode == AccessMemoryErrorCode_NoError, false, &cmdReply, sizeof(cmdReply));
1021+
WP_ReplyToCommand(msg, errorCode == AccessMemoryErrorCode_NoError, false, &errorCode, sizeof(errorCode));
10231022

10241023
return true;
10251024
}
@@ -1029,11 +1028,11 @@ bool CLR_DBG_Debugger::Monitor_EraseMemory(WP_Message *msg)
10291028
NATIVE_PROFILE_CLR_DEBUGGER();
10301029

10311030
auto *cmd = (CLR_DBG_Commands_Monitor_EraseMemory *)msg->m_payload;
1032-
CLR_DBG_Commands_Monitor_EraseMemory_Reply cmdReply;
1031+
CLR_DBG_Commands_Monitor_EraseMemory_Reply errorCode = AccessMemoryErrorCode_NoError;
10331032

1034-
g_CLR_DBG_Debugger->AccessMemory(cmd->address, cmd->length, nullptr, AccessMemory_Erase, &cmdReply);
1033+
g_CLR_DBG_Debugger->AccessMemory(cmd->address, cmd->length, nullptr, AccessMemory_Erase, &errorCode);
10351034

1036-
WP_ReplyToCommand(msg, true, false, &cmdReply, sizeof(cmdReply));
1035+
WP_ReplyToCommand(msg, errorCode == AccessMemoryErrorCode_NoError, false, &errorCode, sizeof(errorCode));
10371036

10381037
return true;
10391038
}

0 commit comments

Comments
 (0)