[sqlite] out of the void: xDlSym

2016-01-16 Thread Alessandro Marzocchi
Even in today's world there are sysems (the ones i know for sure are atmel's avr and microchip's pic, both microcontrollers with Harvard architecture) for which the equality of dara and code pointers does not stand. By the way some PICs have a 12-14 or 24 bit wide program bus to complicate the

[sqlite] out of the void: xDlSym

2016-01-16 Thread James K. Lowden
On Fri, 15 Jan 2016 21:41:41 -0500 Richard Damon wrote: > there are machines where it doesn't work (you just need a larger > program space than data space). Huh. An example of which is the "medium model" of the Intel 8086: 20-bit code pointers and 16-bit data pointers. A machine for which C

[sqlite] out of the void: xDlSym

2016-01-15 Thread Richard Damon
A reason for a function pointer like void (*f)(void) is that C guarantees that all function pointers are 'compatible' in the sense that you can cast a function pointer to a different type of function pointer and then back again and get a working pointer. This is the same guarantee that void*

[sqlite] out of the void: xDlSym

2016-01-15 Thread Richard Hipp
On 1/15/16, James K. Lowden wrote: > I spent a fair number of hours scrutinizing xDlSym today, and I'd just > like to confirm my understanding. Despite having worked with C on and > off since the Reagan administration, I was unprepared for > >void (*(*xDlSym)(sqlite3_vfs*,void*, const char

[sqlite] out of the void: xDlSym

2016-01-15 Thread James K. Lowden
I spent a fair number of hours scrutinizing xDlSym today, and I'd just like to confirm my understanding. Despite having worked with C on and off since the Reagan administration, I was unprepared for void (*(*xDlSym)(sqlite3_vfs*,void*, const char *zSymbol))(void); IIUC xDlSym is a pointer