[haiku-commits] Re: r39462 - in haiku/trunk: headers/os/app headers/private/app src/kits/app

  • From: "Clemens Zeidler" <clemens.zeidler@xxxxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 18 Nov 2010 10:13:34 +1300

Am 18.11.2010, 02:38 Uhr, schrieb Ingo Weinhold <ingo_weinhold@xxxxxx>:

ass Private;

+protected:
+    // Session Manager
+            bool                HasBeenRestored();
+    virtual    status_t            RestoreState(const BMessage* state);
+    virtual    status_t            SaveState(BMessage* state) const;
+

Introducing new virtual methods without removing reserved slots breaks binary
compatibility.

Yes, I tried this but then binaries on gcc2 and gcc4 complaint to not find __ReservedApplicationX symboles. I found out its because the new virtual functions are protected. (thought the public, private, protected keywords are only on source site!?) Does it makes sense? at least I was able to start old R5 and gcc4 binaries without removing the reserved functions and it fails when I did so.


That aside, I'm not very fond of the idea of introducing such an API in an ad hoc manner before R1. I'm afraid there are concerns similar to those of the
archiving API that need to be considered, plus the integration with the
system (and possibly other APIs). I very much recommend creating a feature
branch.

Ok no problem, I expected no problems just because of this three new functions. The session manager also works reasonably fine without any further modifications in any application, despite the fact that no documents are restored. Furthermore my plan was to disable session restoring till R1.

Am 18.11.2010, 09:42 Uhr, schrieb Rene Gollent <anevilyak@xxxxxxxxx>:
Bool is usually one byte, in which case the easiest thing in order to
maintain class size would've been:

uint32 _reserved[11];
char _reserved2[3];
bool fHasBeenRestored;

or alternatively:
char _reserved[47];
bool fHasBeenRestored;

thanks Rene

        Clemens

Other related posts: