home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / g / gina15.zip / BUGS next >
Text File  |  1992-02-27  |  3KB  |  95 lines

  1. AB 26.2.92
  2.  
  3. Compiling src/GnFramework.C produces lots of warnings. They can be safely 
  4. ignored.
  5.  
  6. ===============================================================================
  7.  
  8. AB 14.2.92
  9.  
  10. The sleuth demo is compiled with wrong compiler options when installed in ./bin
  11. (-g -DCONTRACTS instead of -O).
  12.  
  13. ===============================================================================
  14.  
  15. AB 6.2.92
  16.  
  17. In GnViewObject::draw() muss parent_view->draw_rectangle(....) durch
  18. this->draw_rectangle(...) ersetzt werden, da sonst Aenderungen am GC beim 
  19. zeichnen nicht beruecksichtigt werden.
  20.  
  21. <------ fixed: AG am 10.2.92
  22.  
  23. ===============================================================================
  24.  
  25. Andreas Genau 10.2.92
  26.  
  27. Demo hello2 stuerzt nach Clear All mit IOT-Trap ab.
  28. (AB) Vermutung: Der Default-Copy-Konstruktor von GnDoubleLinkedList liefert
  29.         eine ungueltige Liste, da die pointer 'next' und 'previous'
  30.         einfach nur kopiert werden und daher die Adresse des Links aus
  31.         der Original Liste enthalten. Abhilfe: Copy-Konstruktor impl.
  32.  
  33. ===============================================================================
  34.  
  35. AB 10.2.92
  36. ==========
  37.  
  38. Der Menue-Eintrag "Dump Tree" in 'periodic' gibt falsche Klassennamen aus.
  39.  
  40. <------ Fixed 10.2.92
  41.  
  42. ===============================================================================
  43.  
  44. AB 10.2.92
  45. ==========
  46.  
  47. The following anomalie/bug occurs when virtual functions are added as callbacks:
  48. We currently do not know if this is a bug in the compiler or if it is our
  49. mistake:
  50.  
  51.     class A { 
  52.       public:
  53.         virtual void f(caddr_t call_data);
  54.     };
  55.     
  56.     class C : public A { 
  57.       public:
  58.         virtual void f(caddr_t call_data);
  59.     };
  60.  
  61. If B::f is added as a callback, for example:
  62.  
  63.     B *b = new B;
  64.     some_button.addActivateCallback(CALLBACK(B,f,b));
  65.  
  66. then the compiler takes the address of A::f instead of B::f. Besides the fact
  67. that the wrong function is taken, A::f might eventually be called with a wrong
  68. 'this' pointer if multiple inheritance or virtual base classes are used.
  69.  
  70. The work-around is as follows: Define a non-virtual wrapper for f() in the class
  71. that introduces f(), attach this as the callback and call f() from within this
  72. function:
  73.  
  74.     class A { 
  75.       public:
  76.         virtual void f(caddr_t call_data);
  77.     void call_f(caddr_t call_data_) { f(call_data); }
  78.     };
  79.     
  80.     class C : public A { 
  81.       public:
  82.         virtual void f(caddr_t call_data);
  83.     };
  84.  
  85.     B *b = new B;
  86.     some_button.addActivateCallback(CALLBACK(A,call_f,b));
  87.  
  88. ===============================================================================
  89.  
  90. AG 12.2.92
  91.  
  92. Das LIST_ITERATE - Macro erzeugt keinen Iterator.
  93.  
  94. ===============================================================================
  95.