Merge pull request #2790 from chobie/php-table-fix

(PHP) fixes getting indirect table, also fixes getInt method on 32bit machine
This commit is contained in:
Wouter van Oortmerssen
2015-12-29 10:25:21 -08:00
6 changed files with 28 additions and 5 deletions

View File

@@ -188,7 +188,7 @@ class Monster extends Table
{
$obj = new Monster();
$o = $this->__offset(28);
return $o != 0 ? $obj->init($o + $this->bb_pos, $this->bb) : 0;
return $o != 0 ? $obj->init($this->__indirect($o + $this->bb_pos), $this->bb) : 0;
}
/**
@@ -214,7 +214,7 @@ class Monster extends Table
{
$obj = new Stat();
$o = $this->__offset(32);
return $o != 0 ? $obj->init($o + $this->bb_pos, $this->bb) : 0;
return $o != 0 ? $obj->init($this->__indirect($o + $this->bb_pos), $this->bb) : 0;
}
/**

View File

@@ -37,6 +37,9 @@
"test1",
"test2"
],
enemy: {
name: "Fred"
},
testarrayofbools:[
true, false, true
],

Binary file not shown.

View File

@@ -30,6 +30,10 @@ function main()
// We set up the same values as monsterdata.json:
$str = $fbb->createString("MyMonster");
$name = $fbb->createString('Fred');
\MyGame\Example\Monster::startMonster($fbb);
\MyGame\Example\Monster::addName($fbb, $name);
$enemy = \MyGame\Example\Monster::endMonster($fbb);
$inv = \MyGame\Example\Monster::CreateInventoryVector($fbb, array(0, 1, 2, 3, 4));
@@ -62,6 +66,7 @@ function main()
\MyGame\Example\Monster::AddTest($fbb, $mon2);
\MyGame\Example\Monster::AddTest4($fbb, $test4);
\MyGame\Example\Monster::AddTestarrayofstring($fbb, $testArrayOfString);
\MyGame\Example\Monster::AddEnemy($fbb, $enemy);
\MyGame\Example\Monster::AddTestbool($fbb, false);
$mon = \MyGame\Example\Monster::EndMonster($fbb);
@@ -132,6 +137,10 @@ function test_buffer(Assert $assert, Google\FlatBuffers\ByteBuffer $bb) {
$assert->strictEqual($monster->GetTestarrayofstringLength(), 2);
$assert->strictEqual($monster->GetTestarrayofstring(0), 'test1');
$assert->strictEqual($monster->GetTestarrayofstring(1), 'test2');
$fred = $monster->getEnemy();
$assert->Equal('Fred', $fred->getName());
$assert->strictEqual($monster->GetTestbool(), false);
}