Thread View: gnu.g++
2 messages
2 total messages
Started by Tom Vijlbrief
Thu, 29 Jun 1989 09:38
Two more patches for ET++
Author: Tom Vijlbrief
Date: Thu, 29 Jun 1989 09:38
Date: Thu, 29 Jun 1989 09:38
78 lines
2751 bytes
2751 bytes
Here are two more patches to make ET++ work with g++:
In Object.C add the ifdef to solve a compiler bug:
Bug discovered when compiling miniedit and draw. These work
perfectly now!!
===========================
void Object::FlushChanges()
{
Collection *col= (Collection*) DelayedChanges.AtKey(this);
if (col) {
ObjInt *ref= (ObjInt*)col->At(0);
if (ref->GetValue() == 0) {
flags &= ~cObjDelayChanges;
ChangeMessage *cm;
Iter next(col);
next(); // overread reference count
while (cm= (ChangeMessage*) next())
ChangedWhat(cm->GetWhat());
col->FreeAll();
#ifdef __GNUG__
Collection *tmpcol= (Collection*)DelayedChanges.RemoveKey(this);
delete tmpcol;
#else
delete DelayedChanges.RemoveKey(this);
#endif
}
else
(*ref)--;
}
}
============================
In the 'C' file sunwindow.c a function is called
with the wrong number of parameters.
Isn't C++ great! :-)
=================================
static void PolyDot(port, pr, dx, dy, pts, n, pattern, mode, psz)
register struct SunWindowPort *port;
register struct pixrect *pr;
register int n;
int dx, dy, pattern, mode, psz;
register struct pr_pos *pts;
{
register int i, x, y;
register struct pr_pos *p;
register struct pixrect *patpr, *penpr= 0;
int oox, ooy, rop, Mode;
rop= PolyTab[mode][pat2ix(pattern)].rop;
if (psz <= 1)
Mode= PolyTab[mode][pat2ix(pattern)].mode11;
else {
if (psz > 2 && psz < MAXPENS) {
if (pens[psz] == 0)
pens[psz]= MakePen(psz);
penpr= pens[psz];
}
Mode= PolyTab[mode][pat2ix(pattern)].modeNN;
}
#ifdef __GNUC__
patpr= GetPattern(pattern,dx,dy);
#else
patpr= GetPattern(pattern);
#endif
if (pr) {
if (penpr)
=======================================
===============================================================================
Tom Vijlbrief
TNO Institute for Perception
P.O. Box 23 Phone: +31 34 63 562 11
3769 ZG Soesterberg E-mail: tnosoes!tom@mcvax.cwi.nl
The Netherlands or: uunet!mcvax!tnosoes!tom
===============================================================================
Re: Two more patches for ET++ (4 more patches)
Author: Tom Vijlbrief
Date: Fri, 30 Jun 1989 12:32
Date: Fri, 30 Jun 1989 12:32
98 lines
3036 bytes
3036 bytes
Four more double expression evaluation compilerbugs.
System.C:
=============================================
static void RemoveDeleted(ObjList *ol)
{
if (ol->Size() <= 0)
return;
Iter next(ol);
register SysEvtHandler *eh;
while (eh= (SysEvtHandler*) next())
if (eh->ShouldRemove())
#ifdef __GNUG__
{ ObjPtr tmpp= ol->RemovePtr(eh); delete tmpp; }
#else
delete ol->RemovePtr(eh);
#endif
}
=============================================
Alert.C
===========================================
int Alert::Show(char* fmt, ...)
{
va_list ap;
va_start(ap, fmt);
int ret;
if (image->IsKindOf(Cluster))
((Cluster*)image)->SetModified();
char *buf= strvprintf(fmt, ap);
if (gWinInit) {
#ifdef __GNUG__
{ Text *tmpp= ((StaticTextView*)text)->SetText(new StyledText(gSysFont, buf));
delete tmpp;
}
#else
delete ((StaticTextView*)text)->SetText(new StyledText(gSysFont, buf));
#endif
// GetWindow()->contentRect.extent= gPoint0;
CalcLayout(FALSE);
ret= Dialog::Show();
} else {
====================================================
Mark.C (near line 140)
=======================================================
else if (at < m->pos && at + n >= m->pos + m->len) {
m->state = eStateDeleted;
m->len = 0;
m->pos = at;
m->ChangedWhat((void*) eMarkDeleted);
if (doRemove)
#ifdef __GNUG__
{ ObjPtr tmpp= Remove(m); delete tmpp; }
#else
delete Remove(m);
#endif
}
// ^ | ^ |
else if (at < m->pos && at + n > m->pos) {
m->len = m->pos+m->len - (at +n);
===============================================================================
CodeTextView.C (two times)
=======================================================
}
prevCh= c;
}
#ifdef __GNUG__
TextRunArray *tmpp= stext->SetStyles(st); delete tmpp;
#else
delete stext->SetStyles(st);
#endif
}
void CodeTextView::SetDefaultStyle()
{
if (!text->IsKindOf(StyledText))
return;
StyledText *stext= (StyledText*)text;
TextRunArray *st= new TextRunArray(stext);
st->Insert(plainStyle, 0, 0, stext->Size());
#ifdef __GNUG__
TextRunArray *tmpp= stext->SetStyles(st); delete tmpp;
#else
delete stext->SetStyles(st);
#endif
}
=================================================
Tom Vijlbrief
TNO Institute for Perception
P.O. Box 23 Phone: +31 34 63 562 11
3769 ZG Soesterberg E-mail: tnosoes!tom@mcvax.cwi.nl
The Netherlands or: uunet!mcvax!tnosoes!tom
===============================================================================
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads