[xmlsec] xmlsec library, memory allocation and initialization

Marius Kjeldahl marius at kjeldahl.net
Thu Nov 14 04:20:34 PST 2002

Hi all (and Aleksey)...

I'm embedding libxml2 and xmlsec into lua (http://www.lua.org/) and plan on 
using this for various applications dealing with secure credit card transactions.

Lua (and most other scripting languages) uses different memory management than 
the explicit alloc/free found in lower level languages, and ideally I would like 
to avoid introducing "c-style" memory management in the scripting part of the 

In lua, it is possible to add something called "metatables" to objects (in 
general) and "userdata" (which is memory allocated by the lua memory allocater 
which can be garbage collected automatically).

If xmlsec would separate memory allocation from initialization, supporting 
garbage collection (and other methods, like reference counting that perl use) 
would be quite easy.

In xmlsec the method xmlSecSimpleKeysMngrCreate currently does BOTH memory 
allocation and initialization. This means it is difficult to allocate the memory 
from within lua (to enable garbage collection). Ideally, one could split that 
function into two other functions:

xmlSecSimpleKeysMngrAlloc which allocates the memory


xmlSecSimpleKeysMngrInit which initialize it

Then xmlSecSimpleKeysMngrCreate would simply call both of them in order and 
behave just like before.

These changes throughout the xmlsec library would probably help getting xmlsec 
into more scriptable cores like Lua, Perl and more, and would ease memory and 
object management considerably under those higher level languages.

Any other ideas on how to accomplish something similar? I'm writing more and 
more applications using script languages these days, and I am getting spoiled 
with avoiding explicit memory management.

Mvh, Marius Kjeldahl

More information about the xmlsec mailing list