Contributing Advent 1: Xdebug and hidden properties
Today starts the "contributing advent" with a nice bug from Xdebug. I can't possibly be fixing an issue every day, so I've started a while earlier.
This first contribution is for bug #987: "Hidden property names not shown". In PHP it is possible to convert an array to an object with:
<?php $a = (object) [ "hello", 4 => "mr.", -8 => "elephpant" ]; var_dump( $a ); ?>
Xdebug's standard HTML var_dump() as well as the CLI, the coloured CLI and the debugger interface DBGp all suffered from the same issues that numerical properties were not showing in output. For example the above would show:
class stdClass#1 (3) {
string(5) "hello"
string(3) "mr."
string(9) "elephpant"
}
After the committed fix, it now shows:
class stdClass#1 (3) {
public ${0} =>
string(5) "hello"
public ${4} =>
string(3) "mr."
public ${-8} =>
string(9) "elephpant"
}
As you can see, it uses {…} to show it is a special property.
The debugger interface allows properties to be retrieved through the property_get command. This command returns an XML document that looks like:
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="property_get" transaction_id="4">
<property name="$o" fullname="$o" address="" type="object" classname="stdClass" children="1" numchildren="6" page="0" pagesize="32">
<property name="key" fullname="$o->key" facet="public" address="" type="string" size="5" encoding="base64">
<![CDATA[dmFsdWU=]]>
</property>
<property name="1" fullname="$o->1" facet="public" address="" type="int">
<![CDATA[0]]>
</property>
</property>
</response>
With the fullname property ($o->1) an IDE can then make further requests to dive into the property information, with:
property_get -i 42 -n $o->1
Initially that did not work, and I thought I had to extend the parser with additional rules to differentiate between an associative key and a numerical key. I came up with using $o->{1} as in the var_dump() output from above, and then using a special case to fetch a numerical property with zend_hash_index_find() and the integer value in between { and } instead of the zend_hash_find() that I normally use. An hour later I had implemented this and then came to the conclusion that I could just use zend_symtable_find() — which handles both numerical indexes as strings as well as associate indexes as strings, greatly simplifying the implementation. The change for the debugging interface was not more than: https://github.com/xdebug/xdebug/commit/4d8d5b7092f134e6e5a51a0ea2e6932930a29da9#diff-07a70c2afd727f925169e8b30f1c72dcL455
After adding six test cases, the issues is now resolved.
Life Line
Updated a bar; Confirmed a restaurant
Updated 3 restaurants, a vacant shop, and a bar; Confirmed a cosmetics shop, a cafe, and 2 other objects
Created 2 benches and 2 waste_baskets
Deleted a cycle_barrier
Put Kilburn Park station node in a more representable location (not at the back of the building where you can't get in)
Merge branch 'v2022'
Go with 2022.17
Merge branch 'v2022'
Update PHP merging script
Update data to 2026c
Kensal Green sidewalks: Fix alignment and connectivity near station; don't map sidewalks as separate on residential streets for just this tiny section; extend sidewalk mapping on Chamberlayne Road
New building
If you're in London (or Southern England) the ISS is going to make a fly over pass between 23:30 and 23:40 (a little earlier for West of London).
If you're further North than London, the ISS shows further South.
Almost straight overhead. It's going to be bright.
Created a wigs shop
Updated a fitness_centre
Seems I removed the landuse/natural tags
Updated a restaurant
Created a bench
Updated a cafe
But I think my favourite photo was of this Carrion Crow in flight.
The new birds I saw, were mostly too far away to get good photos.
But I saw my first Spoonbill, Corn Bunting, and a flock of Black-tailed Godwits.
I had a lovely walk around RSPB Bowers Marsh yesterday, where I saw some expected birds, and a bunch of new species.
When I got there, there was this welcome committee of Starlings.
#BirdPhotography #nature #BirdsOfFediverse #Birds #Photography #RSPB
RSPB Bowers Marsh
Created 2 benches






Shortlink
This article has a short URL available: https://drck.me/adv1301-aen