[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] b7c939: Fix the circular dependency between sqMemoryAccess...

Eliot Miranda noreply at github.com
Fri Feb 12 20:34:00 UTC 2021


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: b7c93957e773a6f1e90f77972d8a3255e78a2698
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b7c93957e773a6f1e90f77972d8a3255e78a2698
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2021-02-12 (Fri, 12 Feb 2021)

  Changed paths:
    M platforms/Cross/vm/sqMemoryAccess.h
    M platforms/Mac OS/vm/sqPlatformSpecific.h
    M platforms/iOS/vm/OSX/sqPlatformSpecific.h
    M platforms/iOS/vm/iPhone/sqPlatformSpecific.h
    M platforms/unix/vm/sqPlatformSpecific.h

  Log Message:
  -----------
  Fix the circular dependency between sqMemoryAccess.h and sqPlatformSpecific.h
which derives from sqPlatformSpecific.h trying to do two different things.
First sqPlatformSpecific.h provides platform implementations of prerequisites
such as the EXPORT macros.  Second sqPlatformSpecific.h defines platform
specific support functions which need types declared by sqMemoryAccess.h.
But sqMemoryAccess.h needs those platform implementations prerequisites first.
So have sqMemoryAccess.h include sqPlatformSpecific.h a second time if it
detects that sqPlatformSpecific.h has already been included, and have
sqPlatformSpecific.h only declare the support funcitons if it detects that
sqMemoryAccess.h has been included.

A better solution would be to cleanly separate the two functions of
sqPlatformSpecific.h but this is too much work in teh short term.




More information about the Vm-dev mailing list