1. So how much faster is the linking?  I mean the release build
linking was the slow one. Debug linking wasn't that bad.

2. net is dependent of base.. so you could not swap base by itself,
right?

3. The native windows resource management will need to change in the
multiple dlls world. ATL has a solution so does MFC so things just
work but recall looking at them many years ago and they were fairly
complicated. Maybe they will look simple now that I've seen the guts
of a browser.

In general I think there is much that would need to change for clean
separation to work at the point that you could swap modules. Maybe you
have done this already. For example, consider an exported class Foo in
foo.h:

class Foo {
 public:
   Foo(Bar& );
   bool DoTheThing(int x);
 private:
   void* window_;
};

and say it changes to:

class Foo {
 public:
   Foo(Bar& );
   bool DoTheThing(int x);
 private:
   void* window_;
   int    style_;
};

DLLs built with different versions of this header will in fact
coexists (load) because none of the member functions changed, however
it we know have a bug because for the older DLLs Foo's size is 4 bytes
and for the newer DLLs Foo's size is 8 bytes. In fact when we mix them
now we have a really hard bug because the DLL that implements Foo is
accessing memory (for style_ ) that was not allocated.

For this to really work the exposed classes need to have no member
variables, which leads us to pimpl or to pure interfaces and to
factories.

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to