mirror of
https://github.com/corda/corda.git
synced 2025-06-13 12:48:18 +00:00
snapshot; known bug: finalizers and weak references don't work correctly wrt tenured objects
This commit is contained in:
@ -331,6 +331,7 @@ collect(Thread* t, Heap::CollectionType type)
|
||||
void
|
||||
removeMonitor(Thread* t, object o)
|
||||
{
|
||||
abort(t);
|
||||
hashMapRemove(t, t->vm->monitorMap, o, objectHash, referenceEqual);
|
||||
}
|
||||
|
||||
@ -670,6 +671,24 @@ makeString(Thread* t, const char* format, ...)
|
||||
return makeString(t, s, 0, byteArrayLength(t, s), 0);
|
||||
}
|
||||
|
||||
void
|
||||
stringChars(Thread* t, object string, char* chars)
|
||||
{
|
||||
object data = stringData(t, string);
|
||||
if (objectClass(t, data)
|
||||
== arrayBody(t, t->vm->types, Machine::ByteArrayType))
|
||||
{
|
||||
memcpy(chars,
|
||||
&byteArrayBody(t, data, stringOffset(t, string)),
|
||||
stringLength(t, string));
|
||||
} else {
|
||||
for (int i = 0; i < stringLength(t, string); ++i) {
|
||||
chars[i] = charArrayBody(t, data, stringOffset(t, string) + i);
|
||||
}
|
||||
}
|
||||
chars[stringLength(t, string)] = 0;
|
||||
}
|
||||
|
||||
object
|
||||
hashMapFindNode(Thread* t, object map, object key,
|
||||
uint32_t (*hash)(Thread*, object),
|
||||
|
Reference in New Issue
Block a user