Monthly Archives: August 2009

Smart pointers…

Can someone explain me the following behaviour:

I have the following smart pointer:

class AlsaHwParams
{
public:
    AlsaHwParams() : m_params(0) 
    { snd_pcm_hw_params_alloca (&m_params); }
 
    ~AlsaHwParams() 
    { if (m_params != 0) snd_pcm_hw_params_free (m_params); }
 
    operator snd_pcm_hw_params_t*() { return m_params; }
private:
    snd_pcm_hw_params_t *m_params;
};

Thing is: It doesn’t work. Alsa behaves very strange if I use it. Even if I make the m_params member public and access it directly. The only way it works is to not allocate from inside the class but outside like

snd_pcm_hw_params_alloca (&(hwparams.m_params));

Update: Seems replacing _alloca with _malloc fixes it.
Update: Duh, that is because alloca allocates on stack and not on heap.

Es grünt so grün…

DSC00021Da sich unsere Yucca? irgendwie in ihre Bestandteile auflöste, habe ich mal den Versuch unternommen, aus einem von den abgefallenen Seitentrieben eine neue Pflanze zu ziehen. Heute war Einpflanztag ;) Mal schaun, was draus wird.

Zufälle…

Finde nur ich es komisch, dass in Zeiten der aktuellen Finanzknappheit die Alkoholsteuer erhöht werden soll?
Sicher, es findet unter dem Deckmantel des Jugendschutzes statt – aber moralische Themen vorzuschieben um unliebsame Dinge durchzusetzen war sich die Bundesregierung bis jetzt auch nicht zu blöd…

The new automake meme

Apparently a small meme has spread in the gnome community, the non-recursive automake meme.

Well, rewriting the makefiles for rygel to use the new Vala support in automake-1.11 I also converted it to be non-recursive.

This is what I got:

  • Parallel builds working (but this seems to be more the work of the Vala support)
  • Cleaner Makefiles, less code duplication
  • No possibility to call “make install” for a single plugin only
  • No to very minor speed gain

All in all, this seems less improvement than expected, but the cleanliness of the Makefile.am is worth the minor inconveniences generated by that, though it still needs some more cleanup and flags unification.