From 2d7e674168c0fd33af9f5bf49069d4881d3361dc Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Fri, 28 Oct 2011 21:19:06 +0000 Subject: [PATCH] * fixed error in r19248 whereby the namespace for automatically generated classes was no longer set afterwards (and the new code is also much simpler) git-svn-id: branches/jvmbackend@19554 - --- compiler/pdecobj.pas | 20 +------------------- compiler/symdef.pas | 5 +++++ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/compiler/pdecobj.pas b/compiler/pdecobj.pas index f020823247..9092ffda1a 100644 --- a/compiler/pdecobj.pas +++ b/compiler/pdecobj.pas @@ -417,22 +417,13 @@ implementation hs:=ChangeFileExt(hs,target_info.sharedlibext); if Copy(hs,1,length(target_info.sharedlibprefix))<>target_info.sharedlibprefix then hs:=target_info.sharedlibprefix+hs; - end - else if assigned(current_module.namespace) then - begin - { import_lib is used to specify the package name for the JVM - target (= namespace) } - if (target_info.system=system_jvm_java32) and - assigned(current_module.namespace) then - hs:=current_module.namespace^; - { not sure how to deal with cppclass here, since namespaces - mean something different there } end; if hs<>'' then begin { the JVM expects java/lang/Object rather than java.lang.Object } if target_info.system=system_jvm_java32 then Replace(hs,'.','/'); + stringdispose(od.import_lib); od.import_lib:=stringdup(hs); end; include(od.objectoptions, oo_is_external); @@ -446,15 +437,6 @@ implementation else begin od.objextname:=stringdup(od.objrealname^); - { ToDo for cpp: read/set the namespace of the class (influences the mangled name) - (notice that for the JVM target, there is no difference between - the namespace and import_lib) } - if (target_info.system=system_jvm_java32) and - assigned(current_module.namespace) then - begin - od.import_lib:=stringdup(current_module.namespace^); - Replace(od.import_lib^,'.','/'); - end; end; end; diff --git a/compiler/symdef.pas b/compiler/symdef.pas index 23364e031d..2aa5d93e5e 100644 --- a/compiler/symdef.pas +++ b/compiler/symdef.pas @@ -3022,6 +3022,11 @@ implementation objname:=stringdup(upper(n)); objrealname:=stringdup(n); objectoptions:=[]; + if assigned(current_module.namespace) then + begin + import_lib:=stringdup(current_module.namespace^); + replace(import_lib^,'.','/'); + end; end; constructor tabstractrecorddef.ppuload(dt:tdeftyp;ppufile:tcompilerppufile);