X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fmkabc.py;h=029ebfc50485ec012e9cedb4e3b13dc91a36a59c;hb=62a83d162b254d91da418cee25f5b87b067a3f92;hp=82283ab6c2dc92722837654a6fccac69c597fcdc;hpb=bd430c78ec7d956933f1bf732401299fa379164c;p=swftools.git diff --git a/lib/as3/mkabc.py b/lib/as3/mkabc.py index 82283ab..029ebfc 100644 --- a/lib/as3/mkabc.py +++ b/lib/as3/mkabc.py @@ -43,7 +43,7 @@ for line in fi.readlines(): op,name,params = m.group(1),m.group(2),m.group(3) iterations=1 - if "2" in params: + if "2" in params or "s" in params: iterations=2 for iteration in range(iterations): @@ -62,7 +62,12 @@ for line in fi.readlines(): else: type,pname="multiname_t*","name" elif c == "s": - type,pname="char*","s" + if iteration==0: + type,pname="char*","name" + else: + type,pname="string_t*","s" + elif c == "N": + type,pname="namespace_t*","ns" elif c in "nubs": type,pname="int","v" elif c == "m": @@ -113,6 +118,8 @@ for line in fi.readlines(): foc.write(" self->data[%d] = (void*)(ptroff_t)%s;\n" % (i,pname)) elif(c in "IU"): foc.write(" self->data[%d] = (void*)(ptroff_t)%s;\n" % (i,pname)) + elif(c in "N"): + foc.write(" self->data[%d] = namespace_clone(%s);\n" % (i,pname)) elif(c in "f"): foc.write(" double*fp = malloc(sizeof(double));\n") foc.write(" *fp = %s;\n" % (pname)) @@ -120,7 +127,10 @@ for line in fi.readlines(): elif(c == "b"): foc.write(" self->data[%d] = (void*)(ptroff_t)%s;\n" % (i,pname)) elif(c == "s"): - foc.write(" self->data[%d] = strdup(%s);\n" % (i,pname)) + if iteration==0: + foc.write(" self->data[%d] = string_new4(%s);\n" % (i,pname)) + else: + foc.write(" self->data[%d] = string_dup3(%s);\n" % (i,pname)) elif(c == "m"): foc.write(" self->data[%d] = %s;\n" % (i,pname)) elif(c == "c"):