> On 22 May 2020, at 04:24, Sean P. DeNigris <s...@clipperadams.com> wrote: > > Esteban Lorenzano wrote >> The class comments are not clear? > > Maybe it's me ;-) > > > Esteban Lorenzano wrote >> Opaque object = https://en.wikipedia.org/wiki/Opaque_data_type >> <https://en.wikipedia.org/wiki/Opaque_data_type> >> External object = a pointer to something. > > For example, why is ObjCClass a subclass of FFIExternalObject instead of > FFIOpaqueObject when the docs say that a "Class [is] An opaque type that > represents an Objective-C class"? Also, is the distinction just conceptual? > I don't see what either class "buys" you in behavior since they are siblings > that both pretty much have no methods.
This is because ObjCClass = SomeOpaqueStructurePointer (is already a pointer), same as ObjCSelector and ObjCMethod. Difference is subtle, because is just a different way of representing the same. The easiest way I have to explain is: You use an OpaqueObject when you will refer to the opaque type in calls as: someFunction(opaqueobject *someArg). You use an ExternalObject when you will refer to the opaque type in calls as: someFunction(externalobject someArg). Esteban > > > > ----- > Cheers, > Sean > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html > <http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html>