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 = {
.metrics = {
.mask = ES_THEME_METRICS_CLIP_ENABLED | ES_THEME_METRICS_GAP_MAJOR,
.clipEnabled = true,
.gapMajor = 6,
},
};
const EsStyle styleList = {
.metrics = {
.mask = ES_THEME_METRICS_CLIP_ENABLED,
.clipEnabled = true,
@ -625,7 +633,7 @@ void AddREPLResult(ExecutionContext *context, EsElement *parent, Node *type, Val
const char *valueText;
size_t 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);
} else if (type->type == T_LIST && type->firstChild->type == T_STRUCT) {
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) {
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);
HeapEntry *entry = &context->heap[value.i];
EsAssert(entry->type == T_LIST);

View File

@ -5741,7 +5741,7 @@ int ExternalSystemSleepMs(ExecutionContext *context, Value *returnValue) {
return 4;
#else
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_nsec = x % 1000000000;
nanosleep(&sleepTime, NULL);