Skip to content
  • Oliver Kellogg's avatar
    (In reply to comment #2) · 3c553a2b
    Oliver Kellogg authored and Ralf Habacker's avatar Ralf Habacker committed
    > (In reply to comment #1)
    > > A workaround I found is adding the line indicated with '+'.
    > > ms_seenFiles.append(includeFile);
    >
    > The problem is that the current file is added to the list of seen files
    > after importing, which failed when an included file includes the current
    > file.
    
    I tested this on current clucene/src/core/CLucene git master and I confirm
    your finding.
    I therefore commit both comment #2 and a clean version of comment #3:
    
    umbrello/codeimport/classimport.h
    - New virtual function initPerFile() lets concrete importers provide
      initializations which are executed before each single file parsed.
      This is different from initialize() in that initialize() is executed only
      once for all files parsed.
    
    umbrello/codeimport/classimport.cpp
    - Provide empty default implementation for new function initPerFile()
    - In function importFiles(), call importFile() instead of parseFile()
    - In function importFile(), call initPerFile() instead of initialize()
    
    umbrello/codeimport/cppimport.{h,cpp}
    - Reimplement function initPerFile() from ClassImport.
    - In function feedTheModel(), append includeFile to ms_seenFiles prior to
      calling feedTheModel(includeFile) if includeFile is not found in
      ms_seenFiles.
    
    umbrello/codeimport/import_utils.cpp
    - In function createUMLObject(), if name.startsWith("::") then remove the
      leading "::" from name, and set parentPkg to logicalView.
    
    umbrello/model_utils.cpp
    - In function findUMLObject(), if name.startsWith("::") then remove the
      leading "::" from name, and set currentObj to NULL.
    
    BUG:335914
    FIXED-IN:4.13.3
    (cherry picked from commit 60fc2177)
    3c553a2b