last year we reported a problem when compiling classes with Implemented interfaces and was not able to isolate the resulting GPF problems.
After setting up test rigs we were still unable able to replicate the problem.
By accident reviewing the code base created by the Russians called DLIB we noticed some clear statements in the constructors of the classes…
Upon removing the clear(self) statements in the constructor of the classes in which an interface was added the class seemed to stabilize and the interface were suddenly callable.
For anyone using that code base that wish to add functionality by the addition of interfaces checking the code in the constructors is probably a good idea if you run into the problem of the class GPFing when call an interface method…
Probably a good idea to may check all the classes in the source code modules.
TDynaBaseGroupClass.Construct PROCEDURE
Code
! Clear(Self)
! Clear(Self.TmpRef)
Self.ErrCode = returnerr:Ok
Self.InitOk = True
Self.Props &= New(TBaseGroupClassProps)
Clear(Self.Props)
Self.FieldsQueue &= New(TFieldsQueue)
Free(Self.FieldsQueue); Clear(Self.FieldsQueue)
Self.GroupStack &= New(TGroupStack)
Free(Self.GroupStack); Clear(Self.GroupStack)
Self.BeginName = 'GROUP'
Self.ValidTypes &= New(STRING(ValidTypesCount)); Self.SetValidTypes(True)