Skip to content

Commit cbad693

Browse files
author
Joshua Warner
committed
retypedef object to GcObject*, remove (almost?) all unnecessary reinterpret_casts
1 parent b0490b8 commit cbad693

13 files changed

+446
-462
lines changed

src/avian/classpath-common.h

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ getTrace(Thread* t, unsigned skipCount)
3838
{
3939
return true;
4040
} else {
41-
trace = reinterpret_cast<object>(makeTrace(t, walker));
41+
trace = makeTrace(t, walker);
4242
return false;
4343
}
4444
} else {
@@ -54,16 +54,14 @@ getTrace(Thread* t, unsigned skipCount)
5454

5555
t->m->processor->walkStack(t, &v);
5656

57-
if (v.trace == 0) v.trace = reinterpret_cast<object>(makeObjectArray(t, 0));
57+
if (v.trace == 0) v.trace = makeObjectArray(t, 0);
5858

5959
return v.trace;
6060
}
6161

6262
bool
63-
compatibleArrayTypes(Thread* t, object ao, object bo)
63+
compatibleArrayTypes(Thread* t UNUSED, GcClass* a, GcClass* b)
6464
{
65-
GcClass* a = cast<GcClass>(t, ao);
66-
GcClass* b = cast<GcClass>(t, bo);
6765
return a->arrayElementSize()
6866
and b->arrayElementSize()
6967
and (a == b
@@ -77,7 +75,7 @@ arrayCopy(Thread* t, object src, int32_t srcOffset, object dst,
7775
{
7876
if (LIKELY(src and dst)) {
7977
if (LIKELY(compatibleArrayTypes
80-
(t, reinterpret_cast<object>(objectClass(t, src)), reinterpret_cast<object>(objectClass(t, dst)))))
78+
(t, objectClass(t, src), objectClass(t, dst))))
8179
{
8280
unsigned elementSize = objectClass(t, src)->arrayElementSize();
8381

@@ -300,46 +298,46 @@ makeStackTraceElement(Thread* t, GcTraceElement* e)
300298
PROTECT(t, method_name);
301299

302300
GcString* method_name_string = t->m->classpath->makeString
303-
(t, reinterpret_cast<object>(method_name), 0, method_name->length() - 1);
301+
(t, method_name, 0, method_name->length() - 1);
304302
PROTECT(t, method_name_string);
305303

306304
unsigned line = t->m->processor->lineNumber
307305
(t, method, e->ip());
308306

309307
GcByteArray* file = method->class_()->sourceFile();
310308
GcString* file_string = file ? t->m->classpath->makeString
311-
(t, reinterpret_cast<object>(file), 0, file->length() - 1) : 0;
309+
(t, file, 0, file->length() - 1) : 0;
312310

313311
return makeStackTraceElement(t, class_name_string, method_name_string, file_string, line);
314312
}
315313

316-
object
314+
GcObject*
317315
translateInvokeResult(Thread* t, unsigned returnCode, object o)
318316
{
319317
switch (returnCode) {
320318
case ByteField:
321-
return reinterpret_cast<object>(makeByte(t, cast<GcInt>(t, o)->value()));
319+
return makeByte(t, cast<GcInt>(t, o)->value());
322320

323321
case BooleanField:
324-
return reinterpret_cast<object>(makeBoolean(t, cast<GcInt>(t, o)->value() != 0));
322+
return makeBoolean(t, cast<GcInt>(t, o)->value() != 0);
325323

326324
case CharField:
327-
return reinterpret_cast<object>(makeChar(t, cast<GcInt>(t, o)->value()));
325+
return makeChar(t, cast<GcInt>(t, o)->value());
328326

329327
case ShortField:
330-
return reinterpret_cast<object>(makeShort(t, cast<GcInt>(t, o)->value()));
328+
return makeShort(t, cast<GcInt>(t, o)->value());
331329

332330
case FloatField:
333-
return reinterpret_cast<object>(makeFloat(t, cast<GcInt>(t, o)->value()));
331+
return makeFloat(t, cast<GcInt>(t, o)->value());
334332

335333
case IntField:
336334
case LongField:
337335
case ObjectField:
338336
case VoidField:
339-
return o;
337+
return reinterpret_cast<GcObject*>(o);
340338

341339
case DoubleField:
342-
return reinterpret_cast<object>(makeDouble(t, cast<GcLong>(t, o)->value()));
340+
return makeDouble(t, cast<GcLong>(t, o)->value());
343341

344342
default:
345343
abort(t);
@@ -400,7 +398,7 @@ resolveParameterTypes(Thread* t, GcClassLoader* loader, GcByteArray* spec,
400398
(t, loader, reinterpret_cast<char*>(&spec->body()[start]),
401399
offset - start);
402400

403-
list = makePair(t, reinterpret_cast<object>(type), reinterpret_cast<object>(list));
401+
list = makePair(t, type, list);
404402

405403
++ count;
406404
} break;
@@ -424,13 +422,13 @@ resolveParameterTypes(Thread* t, GcClassLoader* loader, GcByteArray* spec,
424422
(t, loader, reinterpret_cast<char*>(&spec->body()[start]),
425423
offset - start);
426424

427-
list = makePair(t, reinterpret_cast<object>(type), reinterpret_cast<object>(list));
425+
list = makePair(t, type, list);
428426
++ count;
429427
} break;
430428

431429
default:
432430
list = makePair
433-
(t, reinterpret_cast<object>(primitiveClass(t, spec->body()[offset])), reinterpret_cast<object>(list));
431+
(t, primitiveClass(t, spec->body()[offset]), list);
434432
++ offset;
435433
++ count;
436434
break;
@@ -456,7 +454,7 @@ resolveParameterJTypes(Thread* t, GcClassLoader* loader, GcByteArray* spec,
456454
PROTECT(t, array);
457455

458456
for (int i = *parameterCount - 1; i >= 0; --i) {
459-
object c = reinterpret_cast<object>(getJClass(t, cast<GcClass>(t, list->first())));
457+
object c = getJClass(t, cast<GcClass>(t, list->first()));
460458
reinterpret_cast<GcArray*>(array)->setBodyElement(t, i, c);
461459
list = cast<GcPair>(t, list->second());
462460
}
@@ -489,12 +487,12 @@ resolveExceptionJTypes(Thread* t, GcClassLoader* loader, GcMethodAddendum* adden
489487
object o = singletonObject(t, addendum->pool()->as<GcSingleton>(t), index);
490488

491489
if (objectClass(t, o) == type(t, GcReference::Type)) {
492-
o = reinterpret_cast<object>(resolveClass(t, loader, cast<GcReference>(t, o)->name()));
490+
o = resolveClass(t, loader, cast<GcReference>(t, o)->name());
493491

494492
addendum->pool()->setBodyElement(t, index, reinterpret_cast<uintptr_t>(o));
495493
}
496494

497-
o = reinterpret_cast<object>(getJClass(t, cast<GcClass>(t, o)));
495+
o = getJClass(t, cast<GcClass>(t, o));
498496

499497
reinterpret_cast<GcArray*>(array)->setBodyElement(t, i, o);
500498
}
@@ -615,7 +613,7 @@ intercept(Thread* t, GcClass* c, const char* name, const char* spec,
615613
// through the vtable.
616614
clone->flags() |= ACC_PRIVATE;
617615

618-
GcNativeIntercept* native = makeNativeIntercept(t, function, true, reinterpret_cast<object>(clone));
616+
GcNativeIntercept* native = makeNativeIntercept(t, function, true, clone);
619617

620618
PROTECT(t, native);
621619

@@ -691,7 +689,7 @@ getDeclaredClasses(Thread* t, GcClass* c, bool publicOnly)
691689
for (unsigned i = 0; i < table->length(); ++i) {
692690
GcInnerClassReference* reference = cast<GcInnerClassReference>(t, table->body()[i]);
693691
GcByteArray* outer = reference->outer();
694-
if (outer and byteArrayEqual(t, reinterpret_cast<object>(outer), reinterpret_cast<object>(c->name()))
692+
if (outer and byteArrayEqual(t, outer, c->name())
695693
and ((not publicOnly)
696694
or (reference->flags() & ACC_PUBLIC)))
697695
{
@@ -705,16 +703,16 @@ getDeclaredClasses(Thread* t, GcClass* c, bool publicOnly)
705703
for (unsigned i = 0; i < table->length(); ++i) {
706704
GcInnerClassReference* reference = cast<GcInnerClassReference>(t, table->body()[i]);
707705
GcByteArray* outer = reference->outer();
708-
if (outer and byteArrayEqual(t, reinterpret_cast<object>(outer), reinterpret_cast<object>(c->name()))
706+
if (outer and byteArrayEqual(t, outer, c->name())
709707
and ((not publicOnly)
710708
or (reference->flags() & ACC_PUBLIC)))
711709
{
712-
object inner = reinterpret_cast<object>(getJClass(
710+
object inner = getJClass(
713711
t,
714712
resolveClass(
715713
t,
716714
c->loader(),
717-
reference->inner())));
715+
reference->inner()));
718716

719717
-- count;
720718
reinterpret_cast<GcArray*>(result)->setBodyElement(t, count, inner);

src/avian/java-common.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ namespace vm {
1616
class Machine;
1717
class Thread;
1818

19-
struct Object { };
19+
class GcObject;;
2020

21-
typedef Object* object;
21+
typedef GcObject* object;
2222

2323
typedef uint8_t jboolean;
2424
typedef int8_t jbyte;

0 commit comments

Comments
 (0)