Reviewing The Function Pointer Parameter Problem
To show how I came to the solution I made for The Function Pointer Parameter Problem I decided to draw some pictures! I used the compare function, ( Prototype: PRInt32 Compare(const PRUnichar*, PRInt32 (*)(const PRUnichar*, const PRUnichar*, PRUint32)) const ) as an example.
The first parameter run through: (Works!)
The second parameter run through: (BROKE!)
On the right of the images is the typeName function from type-printer.js ( xpcom/analysis/type-printer.js ). On the left you will see the Dehydra output it is running through. One image is the first parameter, which works as expected, the other image is the second parameter (the function pointer) which shows the type-in-a-type problem.
The problem is that the type for the function pointer simply contains a second type. Therefore the function cannot find the name and dumps all of the passed in object (t). My “fix” (see the bug) checks if there is a second type in the type it is supposed to be examining and dives into that second type. What needs to be completed is that examination of the type, so helpful output is made. That is what the function pointer is.

