Skip to content

Commit a57a11b

Browse files
committed
Fix #109
1 parent fd80c64 commit a57a11b

3 files changed

Lines changed: 44 additions & 2 deletions

File tree

src/Kernel/Mnemonics/_new.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,15 @@ public function execute(): void
1717
$className = $cpInfo[$class->getClassIndex()]->getString();
1818
if ($className === $this->javaClass->getClassName()) {
1919
// will be called <init>
20-
$this->pushToOperandStack($this->javaClass);
20+
$this->pushToOperandStack(
21+
clone $this->javaClass
22+
);
2123
return;
2224
}
2325

24-
[$resourceType, $classObject] = $this->getOptions('class_resolver')->resolve($className, $this->javaClass);
26+
[$resourceType, $classObject] = $this->getOptions('class_resolver')
27+
->resolve($className, $this->javaClass);
28+
2529
if ($resourceType === ClassResolver::RESOLVED_TYPE_CLASS) {
2630
/**
2731
* @var \PHPJava\Core\JavaClass $classObject

tests/ObjectCompareTest.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
namespace PHPJava\Tests;
3+
4+
use PHPUnit\Framework\TestCase;
5+
6+
class ObjectCompareTest extends Base
7+
{
8+
protected $fixtures = [
9+
'ObjectCompareTest',
10+
];
11+
12+
public function testCallTableswitch_Pattern1()
13+
{
14+
ob_start();
15+
$calculatedValue = $this->initiatedJavaClasses['ObjectCompareTest']
16+
->getInvoker()
17+
->getStatic()
18+
->getMethods()
19+
->call(
20+
'compareInitiatedObjects'
21+
);
22+
$result = trim(ob_get_clean());
23+
24+
$this->assertEquals(
25+
'NotSame',
26+
$result
27+
);
28+
}
29+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class ObjectCompareTest
2+
{
3+
public static void compareInitiatedObjects()
4+
{
5+
ObjectCompareTest oct1 = new ObjectCompareTest();
6+
ObjectCompareTest oct2 = new ObjectCompareTest();
7+
System.out.println(oct1 == oct2 ? "Same" : "NotSame");
8+
}
9+
}

0 commit comments

Comments
 (0)