* All Main Python Modules:

- Change: New problem identified with the Python modules: each module seems
        to be built as a complete binary, so all the static C++ initializers are
        allocated in each module. In particular the C++ tree inheritance is built
        for *each* module so we cannot longer uses the typeid() comparisons
        across modules... It was used by boost::program_options to perform is
        casts with boost::any and was starting throwing exceptions because of
        bad casts. program_option was first initialized in "configuration"
        first included by PyViewer then in PyCRL (see Utilities.cpp).
          A first solution is to re-order the import of Python modules in
        stratus1/st_model so that CRL is imported first.
          The second is to not not link "configuration" with boost::program_option
        as only the binary vlsisapd-conf-editor needs it.
          That is a serious problem of which we must be aware and can cause further
        strange behaviors.
          Debug code used to diagnostic has been kept commented in the sources a
        it may be needed again :-(
          This behavior do not affect our singletons because they are part of
        dynamic libraries that seems to be correctly shared between the various
        Python modules.

  * ./stratus1,
    ./cumulus:
    - Change: Replace calls to CRL.getAllianceFramework() by CRL.AllianceFramework.get().
This commit is contained in:
Jean-Paul Chaput 2010-07-17 10:34:46 +00:00
parent e736739eef
commit 72e63309e7
1 changed files with 4 additions and 4 deletions

View File

@ -205,7 +205,7 @@ def pyAlimVerticalRail ( cell, xcoord ) :
# print "Placement of vertical rail" # print "Placement of vertical rail"
# print "Reference ", reference # print "Reference ", reference
power_cell = CRL.getAllianceFramework().getCell ( "powmid_x0", CRL.Catalog.State.Views ) power_cell = CRL.AllianceFramework.get().getCell ( "powmid_x0", CRL.Catalog.State.Views )
Height_power = power_cell.getAbutmentBox().getHeight() Height_power = power_cell.getAbutmentBox().getHeight()
Width_power = power_cell.getAbutmentBox().getWidth() Width_power = power_cell.getAbutmentBox().getWidth()
@ -363,7 +363,7 @@ def pyAlimHorizontalRail ( cell, ycoord ) :
# Create horizontal rail # Create horizontal rail
rail_horizontal = Horizontal ( pin1 , pin2 , metal4 , pin_y, pin_height, 0 , 0 ) rail_horizontal = Horizontal ( pin1 , pin2 , metal4 , pin_y, pin_height, 0 , 0 )
power_hur_cell = CRL.getAllianceFramework().getCell ( "powmid_x0", CRL.Catalog.State.Views ) power_hur_cell = CRL.AllianceFramework.get().getCell ( "powmid_x0", CRL.Catalog.State.Views )
Width_power = power_hur_cell.getAbutmentBox().getWidth() Width_power = power_hur_cell.getAbutmentBox().getWidth()
nb_pitchs = Width_power / DbU_lambda(PITCH) # avoir l'interval du cellule power nb_pitchs = Width_power / DbU_lambda(PITCH) # avoir l'interval du cellule power
@ -1635,7 +1635,7 @@ def create_inst ( model, name, cell ) :
raise err raise err
# Load model in the database # Load model in the database
modelmastercell = CRL.getAllianceFramework().getCell ( model, CRL.Catalog.State.Views ) modelmastercell = CRL.AllianceFramework.get().getCell ( model, CRL.Catalog.State.Views )
# Error : if the model is not found in the libraries # Error : if the model is not found in the libraries
if not modelmastercell : if not modelmastercell :
@ -1832,7 +1832,7 @@ def temporarySave ( cell = None ) :
UpdateSession.open() UpdateSession.open()
framework = CRL.getAllianceFramework() framework = CRL.AllianceFramework.get()
if cell == None : if cell == None :
for cell in framework.getLibrary(0).getCells(): for cell in framework.getLibrary(0).getCells():