[openbox] argument lists in functions

Mikael Magnusson mangosoft at comhem.se
Tue Mar 16 00:25:35 EST 2004


On Tue, 16 Mar 2004, Mikael Magnusson wrote:

> On Tue, 16 Mar 2004, Mikael Magnusson wrote:
> 
> > On Mon, 15 Mar 2004, John Russell wrote:
> > 
> > > Can someone who knows some more about the OB code than I do answer this
> > > question.  What is the point of having argment lists like this:
> > > 
> > > void place_client(ObClient *client, gint *x, gint *y)
> > > 
> > > where *x and *y are merely pointers to client->area.x and
> > > client->area.y.  In functions such as this, x and y are modified inside
> > > the functions to modify the client position or whatever it is the
> > > function is meant to do.  
> > > 
> > > Why not _just_ pass in a pointer to the client?  Why not say
> > > 
> > > void place_client(ObClient *client)
> > > {
> > > 	and then directly modify the position numbers there.  
> > > 
> > > John
> > > 	
> > 
> > dereferencing one pointer is faster than dereferencing two pointers (ie 
> > client and then x or y)
> 
> actually, i really have no idea, there are tons of semicrazy things in the 
> ob code like only checking if things are bigger than some max value but 
> not if they are < 0, and it works anyway and as it turns out, the 
> variables were unsigned.

looking at the code some more now :) in the case you brought up, we dont 
want to change the x,y of the client directly since we want to do a lot of 
stuff to them and then see if they changed, if you look in client.c where 
place_client is called from.

--
Mikael Magnusson



More information about the openbox mailing list