scripting engine fix ExternalSystemSleepMs on mac

This commit is contained in:
nakst 2022-02-07 08:24:16 +00:00
parent 62eb94b1d2
commit 4f028a18b1
2 changed files with 11 additions and 3 deletions

View File

@ -595,6 +595,14 @@ const EsStyle styleListRowOdd = {
}; };
const EsStyle styleTable = { const EsStyle styleTable = {
.metrics = {
.mask = ES_THEME_METRICS_CLIP_ENABLED | ES_THEME_METRICS_GAP_MAJOR,
.clipEnabled = true,
.gapMajor = 6,
},
};
const EsStyle styleList = {
.metrics = { .metrics = {
.mask = ES_THEME_METRICS_CLIP_ENABLED, .mask = ES_THEME_METRICS_CLIP_ENABLED,
.clipEnabled = true, .clipEnabled = true,
@ -625,7 +633,7 @@ void AddREPLResult(ExecutionContext *context, EsElement *parent, Node *type, Val
const char *valueText; const char *valueText;
size_t valueBytes; size_t valueBytes;
ScriptHeapEntryToString(context, entry, &valueText, &valueBytes); ScriptHeapEntryToString(context, entry, &valueText, &valueBytes);
char *buffer = EsStringAllocateAndFormat(&bytes, "\"%s\"", valueBytes, valueText); char *buffer = EsStringAllocateAndFormat(&bytes, "\u201C%s\u201D", valueBytes, valueText);
EsTextDisplayCreate(parent, ES_CELL_H_FILL, &styleOutputData, buffer, bytes); EsTextDisplayCreate(parent, ES_CELL_H_FILL, &styleOutputData, buffer, bytes);
} else if (type->type == T_LIST && type->firstChild->type == T_STRUCT) { } else if (type->type == T_LIST && type->firstChild->type == T_STRUCT) {
EsAssert(context->heapEntriesAllocated > (uint64_t) value.i); EsAssert(context->heapEntriesAllocated > (uint64_t) value.i);
@ -669,7 +677,7 @@ void AddREPLResult(ExecutionContext *context, EsElement *parent, Node *type, Val
} }
} else if (type->type == T_LIST) { } else if (type->type == T_LIST) {
normalList:; normalList:;
EsPanel *panel = EsPanelCreate(parent, ES_CELL_H_FILL | ES_PANEL_VERTICAL | ES_PANEL_STACK, &styleTable); EsPanel *panel = EsPanelCreate(parent, ES_CELL_H_FILL | ES_PANEL_VERTICAL | ES_PANEL_STACK, &styleList);
EsAssert(context->heapEntriesAllocated > (uint64_t) value.i); EsAssert(context->heapEntriesAllocated > (uint64_t) value.i);
HeapEntry *entry = &context->heap[value.i]; HeapEntry *entry = &context->heap[value.i];
EsAssert(entry->type == T_LIST); EsAssert(entry->type == T_LIST);

View File

@ -5741,7 +5741,7 @@ int ExternalSystemSleepMs(ExecutionContext *context, Value *returnValue) {
return 4; return 4;
#else #else
struct timespec sleepTime; struct timespec sleepTime;
uint64_t x = 1000000 * coroutine->externalCoroutineData.i; uint64_t x = 1000000 * context->c->externalCoroutineData.i;
sleepTime.tv_sec = x / 1000000000; sleepTime.tv_sec = x / 1000000000;
sleepTime.tv_nsec = x % 1000000000; sleepTime.tv_nsec = x % 1000000000;
nanosleep(&sleepTime, NULL); nanosleep(&sleepTime, NULL);