From f9b5acf2c746ef6d9751b8f46185e617b6017611 Mon Sep 17 00:00:00 2001 From: kramm Date: Tue, 6 Jan 2009 21:30:09 +0000 Subject: [PATCH] added namespace handling --- lib/as3/mklib.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/as3/mklib.c b/lib/as3/mklib.c index 0ba4e24..2741244 100644 --- a/lib/as3/mklib.c +++ b/lib/as3/mklib.c @@ -150,13 +150,19 @@ void write_member_info(FILE*fi, char*parent, char*id2, const char*name, int flag fprintf(fi, "};\n"); } -int access2flags(int access) +int access2flags(multiname_t*m) { + int access = m->ns->access; int flags=0; if(access == ACCESS_PACKAGE) flags|=FLAG_PUBLIC; if(access == ACCESS_PRIVATE) flags|=FLAG_PRIVATE; if(access == ACCESS_PROTECTED) flags|=FLAG_PROTECTED; - if(access == ACCESS_PACKAGEINTERNAL) flags|=FLAG_INTERNAL; + if(access == ACCESS_PACKAGEINTERNAL) flags|=FLAG_PACKAGEINTERNAL; + if(access == ACCESS_NAMESPACE) { + if(!strcmp(m->ns->name, "http://adobe.com/AS3/2006/builtin")) { + flags|=FLAG_NAMESPACE_ADOBE; + } + } return flags; } @@ -258,7 +264,7 @@ void load_libraries(char*filename, int pass, FILE*fi) } int flags = is_static?FLAG_STATIC:0; //flags |= access2flags(access); - flags |= access2flags(trait->name->ns->access); + flags |= access2flags(trait->name); if(pass==0) { fprintf(fi, "static memberinfo_t %s;\n", id2); @@ -315,7 +321,7 @@ void load_libraries(char*filename, int pass, FILE*fi) const char*name = trait->name->name; char*pid = mkpid(package); char*id2 = mkid2(trait->name); - int flags = FLAG_STATIC|access2flags(trait->name->ns->access); + int flags = FLAG_STATIC|access2flags(trait->name); NEW(memberinfo_t,m); char np = 0; int clsflags = FLAG_STATIC | FLAG_METHOD; -- 1.7.10.4