OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 25 Сентябрь, 2017 16:39

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 06 Ноябрь, 2016 00:03 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Как известно, для каждого динамического объекта (записи или массива) в куче выделяется блок, имеющий структуру Kernel.Block (не экспортирована). При этом реально указатель указывает на ADR(block)+4, т.е. тег оказывается по смещению -4 от адреса указателя.

При модификации управления может понадобиться ввести в структуру блока дополнительное поле/поля. Таким образом, получается, что смещение указателя относительно начала блока уже не +4, а +N байт.
Однако это смещение захардкордено во многих местах ядра, без введения какой-либо константы. (Увы, это касается и констант, характерных для 32битности, и кое-чего ещё....).

Публикую требуемые исправления (переход к единой константе). Предлагаю внести их в ядра сборок, чтобы заинтересованные в изменениях управления памятью люди уже не мучались.

Также в паре мест при увеличении размера блока используется "магический литерал" + 19 (а затем DIV 16 * 16).
Я не понял с ходу, что это (ниже будет видно в коде).
Эту константу я тоже вынес, как const19, и увеличиваю её на разницу между новой длиной заголовка блока и 4.

Итак, для стандартного Block blockDataOffs = 4. Если вы вводите в Block в начале (до tag) какие-то поля, то увеличиваете эту константу на их размер.

Код:
CONST      
  blockDataOffs = 4;
  const19 = 19 + blockDataOffs - 4;


Код:
PROCEDURE Mark (this: Block);
....
   IF (flag >= 2) & (actual < this.last) & (offset < -blockDataOffs) THEN   (* next array element *)
....
                  S.GET(actual + offset, son);
                  IF son # NIL THEN
                     DEC(S.VAL(INTEGER, son), blockDataOffs);
...


Код:
   PROCEDURE MarkGlobals;
...
               IF p # 0 THEN Mark(S.VAL(Block, p - blockDataOffs)) END


Далее, процедура Next. При модифицированном блоке либо модернизировать вариант в машкодах (позиция поля tag-то уже не та), либо перейти на высокоуровневую процедуру (раскомментировать её и закомментировать маш. код).
Тут же встречается магическая константа 19:

Код:
   PROCEDURE Next (b: Block): Block;   (* next block in same cluster *)
      VAR size: INTEGER;
   BEGIN
      S.GET(S.VAL(INTEGER, b.tag) DIV 4 * 4, size);
      IF ODD(S.VAL(INTEGER, b.tag) DIV 2) THEN INC(size, b.last - S.ADR(b.last)) END;
      RETURN S.VAL(Block, S.VAL(INTEGER, b) + (size + const19) DIV 16 * 16)
   END Next;


Код:
   PROCEDURE Insert (blk: FreeBlock; size: INTEGER);   (* insert block in free list *)
      VAR i: INTEGER;
   BEGIN
      blk.size := size - blockDataOffs; blk.tag := S.VAL(Type, S.ADR(blk.size));
..


Код:
   PROCEDURE OldBlock (size: INTEGER): FreeBlock;   (*
...
      s := size - blockDataOffs;


Код:
   PROCEDURE LastBlock (limit: INTEGER): FreeBlock;   (* size MOD 16 = 0 *)
.....
      s := limit - blockDataOffs;


В NewBlock снова встречается магическое 19:
Код:
   PROCEDURE NewBlock (size: INTEGER): Block;
      VAR tsize, a, s: INTEGER; b: FreeBlock; new, c: Cluster; r: Reducer;
   BEGIN
      ASSERT(size >= 0, 20);
      IF size > MAX(INTEGER) - const19 THEN RETURN NIL END; (* Этого не было до release 1.6 *)
      tsize := (size + const19) DIV 16 * 16;
....
      IF b = NIL THEN
         IF dllMem THEN
....
                  b.size := (new.size - 12) DIV 16 * 16 - blockDataOffs
.....
         ELSE
....
                        b.size := (root.size - a + b.size + 4) DIV 16 * 16 - blockDataOffs
                     ELSE
                        b := S.VAL(FreeBlock, S.VAL(INTEGER, root) + a);
                        b.size := (root.size - a) DIV 16 * 16 - blockDataOffs
                     END
         END;
      END;
      (* b # NIL *)
      a := b.size + blockDataOffs - tsize;


Код:
PROCEDURE Init;
....
         free[i].size := (root.size - 12) DIV 16 * 16 - blockDataOffs;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Ноябрь, 2016 00:17 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Остальным модулям среды (в том числе каким-нибудь отладочным) наплевать на любые изменения заголовка блока.
Не наплевать только тем, кто пытается обходить кучу именно по кластерам.

Всем, кому надо знать это смещение, экспортируем переменную в Kernel.
Переменную, во-первых, чтобы не возникало зависимостей времени компиляции от константы, во-вторых, чтобы заинтересованные модули могли работать с любым ядром (добывая это значение через Meta, при наличии переменной в Kernel, и принимая его за 4, если переменная не существует.

Код:
VAR
...
      heapBlockOffs-: INTEGER;
...

В инициализации модуля:

BEGIN
   heapBlockOffs := blockDataOffs;
...


А из всех модулей ББ влияет это только DevHeapSpy.
При этом он воспроизводит у себя структуру Block.
Если в DevHeapSpy Block не меняется (а его и не нужно менять), то при взятии первого блока кластера смещаемся на heapBlockOffs - 4 (т.е. становимся на старую часть блока), и потом прыгаем от блока к блоку по heapBlockOffs.

Ниже - изменения DevHeapSpy, работающего как со стандартным ядром, так и с ядром, экспортировавшим heapBlockOffs.
Предлагаю также внести изменения в сборки.

Код:
IMPORT .... Meta;

VAR
....
      heapBlockOffs, const19: INTEGER;

   PROCEDURE GetHeapBlockOffs;
      VAR it: Meta.Item;
   BEGIN
      heapBlockOffs := 4;
      Meta.LookupPath("Kernel.heapBlockOffs", it);
      IF it.Valid() & (it.obj = Meta.varObj) & (it.typ = Meta.intTyp) THEN
         heapBlockOffs := it.IntVal()
      END;
      const19 := 19 + heapBlockOffs - 4
   END GetHeapBlockOffs;

В Init модуля вызываем GetHeapBlockOffs.


Ниже - закодированный модуль с изменениями (изменения - синим).

Код:
StdCoder.Decode ..,, ..Nt3...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
 hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX
 7.2.s,crv00k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O
 NbXmb.2.YZRl2EGq3,6.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708T,U..w.otQV.
 sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.PuKw,gcPF.0E.kue.86.QC18RdfQHfMf9R9v
 Q7ONb17.,.D,0.p.,6.M.EJYjyC.6.VQ.k7k.8Mtr.2.C10E.c4E.k.0.e0M.6YE.G.4.2Uegi
 JQeFK.3Qwb8R79G9PM7PNZvQRdJ.0U1.,UH,,Uy.,c.o2rFHoA2lqK.o27HHQ52C2FI3YjyC.E
 6V.A..2UeEeWQ1Iklb8IepZhZJinpZHZCZORNX2hgnRg.AS.QiiIepZhZ7F6.Z52.KAS.i80E.
 QE.sQRtIQeoBjghg2hgn7.X5.u0n9PU.Iy5.,.60cM6.,U00.umUG5.E.Y.2..EK0.,M.6.,.V
 Ngp00kXat.wnjl.k.E,2kmI.,iSV.16OE.6.vvq1EnXE,IklT879HHfPLvQR7HHfPL9F9vQs.E
 .sHE.cFE.AUyUHZiYRchZgnpZD3iZphIxhjZh2BhVZhjxgcwYHBjnZiZhhjIenJiXxZ,Jgjhio
 xYg2YbAcWxB0GVmqkCqp8orWrHaW0Ikmj,6.Q46.I12U.kzV.IZ..5.V2A0AU.E.q5.ZD36.c6
 E.606..4E60E.6.MT..0.040.O22.1cDsI......kH.66..X.16.2Ux,.6.c66.,U6U..M.R.1
 6.MT..0.q32.C20E.AUvUH,.8ItyqvCrm8LISGWyqlKrL8IVqGaaqlKKrCrmSGK0mH8Iq4qlUU
 YddRgZ,HF,y.4E.ky..2.I22U.E2E..AUCU,2.AqXD.B54DOormKmCLLOormKmGomCrl.0E.cW
 61MR,.,.sUZz0E..y.S30E.UqU.Ikmj,6..EBU.U,.J,A.2G6.j.zT1HM9,NKnOKnOHP8F789,
 dPR99,d9Rd9PM01.49.ZT3E.s861M2E.A.6U2.k.q.4E.6.X3.U.Ey0.N.D1,6..526..T.H00
 .o4cU.,..e,2.A.c8.6YE.aU.szELuGL.0kM,.6.Q3Y,A06.4.2E0.M.3E.AU.U.IZpFYFtz.0
 E.6Ps,MKE.QEX.0.E2kTE.0.3o7U...77.2U,.,.V,2U.w6.k.E.0.1M,k2l,8Mtr.0E.MoE.c
 4E.sz,.,c8,.0.,6Y1.G.0kEk.KF.6.J.1c,6.h.1cA,U.Y,AU3.d.1616.B.1s0EAk.WV.6.j
 .1c96.r,SH.6.x.1s3k0l.eV.6.F11626.1O.AUX.x.1c76.v.W00E5k,00,6.16.QUuV2Ikmj
 ,2U.EKE.EBE.0.z50EJYDI.2GE,k,45KE,9z4E.0.X,0.p.,6.wT6.JFA0z.U.2GkFk,W,0E88
 .BcUZT1E..UO.,.1.eWwV.E.mP,6.O.Q0oU4.T..V.B.Y,o.EtE1U.I4o.6.l1B.A3o.kKG.16
 6,E.0E,1.5M16.v9.o.6.N11M5,U.Iu.k.40YU,2.Bc,6.5i.AUQU.Q5QUFE.o6QUGU.YAAUe.
 P21616.F05M16.P,1s,6.n,.dW.QU5.nP,AU3E.0EI8E.0k.y.,kpl,q.YU.k.C.0kUG.B.o9o
 .6.bQ.o.E05.1s0k63U.AUL.ZX.AUSU.o8AUl2.,6.z,5M2EmF1U.20o.E4k.y.0ERE1U.A1AU
 M2.0E0E1.b.B.oCAU,U.wi0k.q.Y5QUB.HE.AUIU.I.0U,U.I6s.6.3.4.o9oU6U.gU0k,4.,k
 Nk.K.I.AU,.16.AU4U.Ib,E1G.0EO4.5M22U.2b1k,4.gc,k,4.oE,k.4.,EAO.1M,kbVAU.oj
 ,U4U.gb8E1W.0kZF1a.o8Q.,.F,Bc06.x9.QUF.dY.wzBxd2heAhcUYcZpi6hgV3iH3itRbB2Z
 eIZBIU0AVkJijJhZRgoBVx2YWIcgBgX,3N1HsPZvN1fPHfS19RHvPRP0v763tRjvRRtP3PNZvP
 Rf959O3N1HsMTfPdfQHfMwhmRi7gbUIYDJgZJC0mqaql8rrCrwCLusQ3N1HcR9fQbPOTfPH.3s
 InvQdXjsQC4E,8m4akl2itJidxgcZi7gbU....mqoCqmk2qHE8W2xhX,sME,8m4aklWqkuqnKq
 takS003c6PM0HvQbPR9vQHMD.3M1Jd8HN1PM0HOHVuHZ8JPM0HsI,dCv76bOKb8J9OHN76LONZ
 fP99PN76b8RZPORvNb99PM0H6ITfQdvQN76PuP71N76hOO9ntmGECpm8LvaqlKqtmGECJuy4mG
 E0JtyKsKKtGroKqtmGEGoo44mGECoruKuwhgZhZJinZZUYcjRAP1mW2hgqZcZJgpxgg2YBhgoB
 gvgVBAV1xdCReIhVBgV7AVmhgnxhghioBhj76v76ltC,78J76TfP996VPOlPNN96ZPNVfQ9vQ9
 fPdvQ,dQ9vQT1ElaLuKqt0GJam4ak2mqouqmSJEqHEKnM8nR0GIe06PHfP996HvQ,NBXdA,7QW
 5b96NvPRvNN76Hf99f9,dQ99QQiZ,fNAIZUIiZtP...EY0mS0mOiHEWGJ.EEQCNPORHY2id3D6
 OHvNF96JN8P.cJ9fQdPH,ND,tAr76Fd8qqk8rnaKr0GlKKuSrmKKr0GuSrr0Gqa4b96J,U6xhm
 hdUgbUIav2Yc...Orm8Luaql4Kq0mlmquCLuKKt0mmGqnKKE4KrGKEmqouan,QgghiL3Yx6PHX
 Lt8,dAJ7PHfP99GsCPM0HsM2djJC,VoQbU23CKqKLYUkBBElKKu.NPNB9R,dRHPN0mmGqn.Orm
 85.C5.emIq.6JT9QP86vFQ.6JEsa4.UXZBb1b96JN8M1HM0j86vFI8HJCKqKLYUf2YXZhpxed2
 Ye2YExhmZCR7QTPOR9RrN1PM0dOKVOFPM0HcENvP5vO,ND,7ITOGR8J9eI,7JT86ZOF5uHZ8F,
 tKffPdPMDvN99NvO1Hk2GrkSKR0mZKKtELGpw0rmin4aU7QidJjZJbUAdCZe3xc3JevAV72Ze2
 YnBhuhgUwha3YaJiZhgUIggxhXtQ,d8H,4qlGru4KqeHEaIb.qk2aUaBhmRioJbUA7UBAV7gcC
 ZcvgV7AV1ZhpRC2Yx2YE,83...UnVu.S2rN0Fd8,7RT9R19P,tQHfS0GJa0ohZ3joJbUQcghin
 VvgV7MFk4AVKBhZlS00Ed..FdJHPNCLLUdgV7M0FPNHvNF9Rp76H0DWB.M0q.PuP7PN0mS0Gc.
 ZWD,UBxhYltumaUdgV7AV7AggZhjRgu2Y7p7S2..4olGroyKrg5.Z0.sI9fQUiAcXZidlI0mWu
 IWiXBkaCrn0mS0GdKoV.P0C59vQbPMDPNH769eHM0cJ1eIPM0qqmqKR0mayKmsCPM00rk8rKeH
 E8pWC2qk2ak2.19R99NPdC,NGsFQbU23uquqKlKKt0mrOKE8qwUXhimJiZphoZht3YVZhgxBEE
 emIk2C4b1bP9p76H0...59PC52YXhCZ1...WaV3inBBqGR0mY.0GIeGEG5cMn9R...Uaxhm3Yc
 hgV76JN8MFk46OcENvP5nbOKnCLK0mlyKrCLu4nQeHEa2kRqk4aEc8pbCoWGoe8pW0mXKKuWom
 4Ks.kRqk2aEf4YUAhoJbUgdZZCRNGdPNPvCPM03OFDOGRO1HM0F1.66pNDGnRqk2gdZZiV7HTv
 PLPRV9I19RF983tG9fQR1FPN11.8GK0moGrIin4ak2aIX0moGLLOpkmqoGKIaGEOGEWmoGLLyK
 leKEqHEqomG5hPMZvH3fOH76B76EuaLs0mS0maUdphoZet3id2YI3d3pdBA,H..EEkoGLLaIrG
 Lf4KqWmIqk2g6M0CqruqtEEenS0mMaHEiGEWqm44.M9,7BPM09eH0mXKKu..Q5PM0.kU0LsKKr
 GKEWGf4Id0mteHE4Id8pUaJEyIX0mVWoU8pR0GueHE4Id..HtCPM0O3mqmuKK0momGEeKR0mYu
 2EECKoeHECIYsCPM030EqKKr0GRqHEmoWuIICrIin4aUd3Yug5VtC,tJFOGNOF,tQrOOv86576
 V7K,7FT86HeH588HP8,NF.J96pNDEdKIcKoUGJECKo0GRqHEGrheqiiHECrha4pNDCKoiHEaIb
 cOHtC,NGRWdleuIeaIa0GICKo0mS2aMBZUwdG3YcAhUgbUYhZphdQbBktiJqKKr0mK0mMqJEe1
 V7KPM09018QV1rN1P..Qe,3ikhA00sQ.cF.,7R.UH3dDJeIRc6B6H,O3YimJbUAcG,ZNBh76Te
 F,tEsCP..b9RZ96pNDGLGiHE4Is05WmtmGECLu8rIqk2KIbsI18QkR..MOpPNTeN,78BfC,tIF
 0UUU9hAEekIeHEa2UBM0EweHEa2.82U1BcHhcUogUwd4hV7AVw3YkIcMJ5ZOFdOJZeH,7APM0H
 6T4HgmGE8HgmGEGHgeHE83kMqk2aEyQaMZZUgaMJbUI8UmgV7A,WHgmGE0nUWJR00UsgV7A,4n
 M.UopZnBBqk2Umk4ak2aEw0GRqXHpZKBcA3Z7pdI,N76df93PMbPNr8AvO8rN1Hk2a2l967OGh
 86ZNBhlF0GM0GeWoW2Ys3Yug5df931c9H9N,NHT8F,7B,t8,NAh769eH70Ie3ZeJ,UU66bOOpn
 b2ZH3dDFICIY8JIWrIaGK0Guu0UdgV7AV3ZdHhcUIe3Z86BPM0HMFRm4akW66aKxkRqk4..BuP
 ZPPTeN,FueHE..sIF050q..a2be9h0.kI0GWaIf.v76V76dmWg,a.UH3723sIRdJ..AZdgV7Ea
 M1HM0H...Aaq2Yf2YopZdZgU.dN8HN1HkWuYB.,dFTfQsCak2qUE,ULJidZiZpdVhhZ3YcYiu.
 .QbUoe,J8bfC.y2kIUKViBghhgu2Y9hAEb4qqQbUogu22kVkRcE.OKEenSocj,F7RHtCPU1,.m
 bk2fu2Y2BhVVigdV3iHZimVcIYXYcZpiugeiZgZpgdphZZgWYZUQidgV7AVwNAleC,tQ,dCvFF
 8obyIaKoUuIFqk2a.Z7Kp76b1Qe6xdG,8m4a.CXu2Yn,CIY4Id.GHgsQU0BfIhcWgV7Up29.C3
 AdCZeWgV7Uq2fu22U7pdIh6IYB.j7Kp76.b08pW4Ia8m4a.WXu22UGhc,Z7Ut2fu22UHhcIJYB
 .VNE.6HTeHDOGR8J3,cE22U,pdNJe3RcWgV7A,QcMJbU.UEZeGJYB.GIgeHE.0pbaIbgcGJYB.
 KIgeHE.IeDR6EFqk2U43fu22UHZeGBdCxcWgV7Ul2aMZZUAal69,NAbVBA,HMGBGIoZdFWa2kF
 M8,d7YCPvP7f9ZPNBvMR9R,dDv76VN8,7J.akt0GRqXoNPcP1PP997r761023IYiIYdQbBk2ak
 ZKKtu4SomGLeaLsKKb44F7RN76RPMPnIiHECpU05.RPMM1Hk2KIaAd43Ya3Yx2YlAaM3YI3d3,
 akt..67..3FdKoVy23N8r76PM0HM090.CHg0GeW2k2C5IYEx7.MFg6M0b1cI..9eHqU7YDZ7Al
 eC,,sETOHRNGfePLfPTvRRf6PUwlMWJR00.wcJBd2JYBA,cAleC,,.8pWCpemIe8m4MFNWUYcd
 BA...sOR1BuPZPP19R379,,akWu2K2,tJZPO.rN1Hk428.0GbKKwGLEWGleHE8IqkIeHE8IqkR
 aEIeWihgsZC39PTXUAhi3YnBghhgUQgghC66JN8Pk2O3CrocCkWS2r764qneX9hAEekRqU0,6R
 2Yug5b0QdZJC.mGECJLO3a2EKIgiYiVxgd2Y2B7GHEeGEGnIi1HsQHXUIbx6R1vNRtQH1L76.s
 HU7MGBmbGIWWmduGf....ZN8,7JFWUQidVuElumtaKxM9,tIRNE7eIFdMRtQM8,t8,tQHfS0mW
 u2sQER68bPOpXfMAfN8,7FHWloaUIZUAaqQbBAV7I8.R,8Iqy4N76be9kY.kI0mJQCAZBAV3VC
 hgstCPM1I8.CIqK52dZBhbFEWmta4p,UdIbU.sCPUcI3F1sPB9619659PUUAhi3YkBhsVUIZd.
 cPTfNNPORnteHEa2.82UixhaZB66p,FtQHXUYc7FtK4MOkJ2ZgBhihgLhZlAZd2Y2VgBBQbBA,
 Z0cPT1QCJ76F7PHX63Yf2YgBBO3qoI0mJYB.in4akWu258Pf1W2sCP..cJHPNWoma4WmIeHEa2
 .aEI.662YqBhZ76HfPKLraKvKKtAgg3YpphdZin3Ye.klm4cC,tEN1QbU2huMGR0U0,sMN12Yu
 g5bGfkVmquUg2Y9hAEdyqrGLIamIiHEWKEenS2avgV7sJFOGNWXZBEECGEuoYmIEGobqk2ak2a
 IbCIIWKK0GICKqKLeMH,t8,tENPREY.FtMNntELCroM8H76J76VuP.HXdQbBM0C4EEe159PUio
 hZ3DA,9WvU7,Qgg7JEJ00..I8UcRbBAV3FEOpo6GUvM1kV.0pkaKrGraKqq0GIOKRoedhAbHX8
 rkqqm2YoxhkZZUIgjZioxhhJbU.M8rN1o8UnVu.kRIgkYZUIggRhgcP99SeX0ZBQbUggiZgu2Y
 7,Q5ak2.Y8VXX,2dg6SN76lPAN76nfCa2UU23KLrYC.H6NT9RN76VPMHfPKKmmGE8ruuKqKKre
 HEa2UBUXZZUQgkIbUAdC,EV.YA0GRqXc2ejJCko667OGogiYgjZidc8,dNR,rN1akYOYYxho3Y
 x22.7vPI5OKLG4,NFR8Fklm46J2Yug5V,.22Q8kV.m0..g,S3.EEC06Fk2aIbsMNPREe69EeEJ
 GqrGrIin4kl.WIEe158P.91W0C5umtUUI37vPi1Ad47859PUIFEqGECKqY82Yw2YWxBM8,tHZW
 Xlt.QZUQAU63Yy2YoxBH76d0PU7AVapZ2JiVxiGhgXZicQgg7GTnaeGmyagsMQCY8mWcU6VfQg
 ghiLd87vP.b166.6GNN1HM0HM06IT1OqomKqmGE0pr85SKtKqw8nOamRq.aEIsQ5PMR9651661
 fP7Hm8rk2YWZhjlt.AVWZhf3Yug5b0I669C3MG.Nllm4M8,t84HN0mJ0Go.sH660WdQ5M09fP7
 96pND..Elmad2Yf2YcQgg,u02YhMAZN8,7FHWl66Uh2YchgV,.iGEGnRqk2M039A,dCvFlmqpi
 HECKM0GRM9XtCPM0AVt3Yukl.G36P.IZYlRU72CHfP66pND4HP0GWaIfIC.QbU23uqr2YkBBkk
 mKtKqkGqw0Gs4qo.TfP,tMffQZ1,7PHXUIZd.H6SEICKq27qYgBhihg6xB2iVBhiVdIZYxBU7w
 8kdu0..A3t769fP7967uHk2A7C3..c9dPMDXx2YHpZ,,NvOCroM8GJY66Fd8OKt.TXUIZd.HUX
 3YukK66RPNlHEe1bGfEVUg.MG.Uds88KqiKLUUQ3F1UDVdgV7A,HkWmY7lM0mYuIECJLUHhcIZ
 ZUIAYC6JF0MMZfQ1PS,d8H,a.510pr858KqKrmiHEu4UChAWGlmqpam4a.HkWMFWGJ0GtQgjJi
 Y3YeA3M0QApVExBcQ99Nr76RPN22Q8EVUg.MG..,VcIggd9c9.CqruaolI0GWkMc8M8PM0A,9e
 Hi1A,HeFCKECGECKMYe6l4k2cQffPNXUI5Wmdu0..A3P76b0..VN8H767GfICb1UBAV7M0w8Et
 KLrUy2YgBBSpK0rka42Y2x7M06SX76pNDQA.N1F0ULBZe.k2kY680HECGEqmMaGEOGE2jUYbU2
 jlAZUY8.H.O4cIEwmGEaLK0GwY3n96LFqEY0GJ0Gm6903cNUX3adgV7k2kW.A,Yc3RccIippBY
 3NPOweh.M8r76VPMH10GR6AU7Us3223.U6xBaGJGqr66H0n99,78NPOs8NPORHfUdc8kI.HU3,
 M0A78ruu400V76d0k2kYsMV76EEGJY66Bf97eQ..WLEiGE8ruu4eGmyKumWt32U632EK28..0m
 Wu2k2kYu2VPMH1m0Ud66H0l99,dQUeUd.a.90k2cM008KqiqR6Ae15P1HM0aU3,M08KqcCohZ3
 DPM0AV3,M0HeFkF.M1M08566pVcQ8..KKrAZUgZU..UW,...aUL,.o5N1j0UUY6k2cN..aLK2Z
 X,qoJU6xB.jO8EKAjU.2dU.6I..QbBU7EW.EK.jO9.a0.0GR6AU7EwUcQA.EYy4H,i1MS6PkJU
 K,.a0M0K2U7MGICEE6AUU..Ug6S.c869aLE.WIE.NFc..66.AV3l4A,sCklm466pVXZBb1RdPs
 CkYu2516JY359PU6BZvg,K2PkW66VOMHXBlRqk4cIC2ka4KtiKVmqrCaU2ZaJ5..CrmmKR0GVU
 vsPRfC,dETuHN0HtCPUK,.p,UvcP9Xu.km69,tPBfNb99GqrG55vPNfC,NG.r76BvPfXucET0Q
 bBk2C4EeUsZ3mWmZZUggu2Y7,EIeWpFu.8oW.G4e1F7ITfQ6Qa4G2OaYlI00Bf9sCPU7p67XUg
 5.G4e1B10mW.C4.0GR6A.UUUH,C2EK..UUogjVUI5OoUmodKoRq.j02ZX,2YX.H76BFzOqrKLr
 6Fk2K4e1b0A7UgsM.HlJA46851c9b1qWlU2Vl66kRU7p7.Y8mWXZBdWBd8G4HtCU478be9..kt
 kIYbx2YH,.ktKKqamI0GH2ZH,..2Yw2YZlIY8g,ak2OqrKLr22YeGhe3RbBA,KIaM1M0HeH.6J
 kVm46G91.c9kII3.M05166pVX,oZiVv.9eHqU7g6i1aIXogjhCYe6FEW0bPNN96HvQ,tMTHu4q
 ouqmGKEaKr0ml.0GJk2A7yKr0GeWoWsMT9P,dCvFcy4wAKKrqk2aU3Z7H0.kdUnhAR7R1vNH,.
 .Elk4a.MF,tMT9P.EtM1Hk2o7k2uqm66cH68bPNNP8rN1cQ,dC2ZXFYEE6Pkr.kfaGE.r,y40G
 Rkd.H0.66L76F1UD,Fd8GrkSKEemI0mK0md..sMQCAZd22cQku.kwUX,Yej76LFIWmrOKn6FHe
 Jm4.Flo6GL,O3kJYB.c8G4Us,FtM27.6GT12ZjpAgdDZ6NPOw8H76J,.996pNDWLEi0be9..uq
 mM8,N9..ktkIY6IC.2Ye2YY,sJUZ3YygbUIiUYcDh,AVap3..Ut32m4WIE.N76VGtEnUUsPamR
 q.akYu2nXc.Q3N1h0.AZv.H6SEI..6GTXd2Ye.r,akmUsVZ3Yh2YmRbBA,K2U7p6996x76l96d
 8GcNG2..999,NS.2Ye.N,..2Y3,g6qU3FEqok85kRqk4U1,YecBhnRcghC66FdN..EwmGECrwe
 HE.AZusEN1QbBEf.C5e1.r767vPdXXZBEe69C4EYe1R0QbBcEcH6NcC2ZExB6Qa4,,OaYlI00B
 1i1a27XUg5.G4e1B10mW.C4EEe1ROGNuCPM0a2FtMNHYEEeGEG4mnS0mtWrI00CLw0GS0GIC4U
 fcA.T1YBw8,,A3d0PU7QA.sIU1,Y3..M1A,.dWUI501sJUXltEEC022U7AdCll.G3N,G3.Q5M0
 516G,dCQ6.91UnViQC.sCk2aIX.Ee66tNDAjd2YaUt3YwsM.kJQgg,WoI0GeEE8pW.59PUBA,a
 kWm2aIbC2.dWg.EYQbUQgg,0GRsM.RdPsCk2KIbg,H.kWsCcI..in4g60GeWqo.UB.50.8Iqy4
 ,Fn.....a030iX7cJ.ER.sC,dMNHKoBI5m42YaxBRHRsH.AV7YAmWgBBuqrmGEyKn69KKrY319
 NZfC,NG.r,C4Ee..FeC.U0,6N2YuEIwBUd,.AZUI3B1i1a27XUg5.G4e1B10mW.EICLw.27UgV
 6VdUYlIwdGFICKq.,,..w8.,7D6S.PU7I8d0uoYmo4a.Q5QAUUUH,.Y3....G3,dC0nR0Gny40
 GR2Y4ldQ5w8EIktEEC0A3BFz.G2AV7p7.Y8m0Y8.AZv.516G,,50km.sQc9b1.i1Ad4ll.G3,7
 DMSEIAD..i0.FO8,,0Gny4I5G3qk2aU3Z700.6JY3.WYv.EEe151c9R1r,o7P.Q5A7O46JEI68
 b9SN,HFsyqouanNOR9RT9659PUUI3Eqa4RHEenS2ZcMSqWX,Y8aW2VYxBH7670F7PHX63Yf6Pc
 JUvg,akrEEe1...UY,PuH7GIm4W2UK,2YcEvK4H1yKnMNd96HfPm400kY68N1h0P86tNDyKnOa
 d2Ya22TfN2Yw2YgBBW2UK,H76d0P.HsPERktWLEGoY.g36GkK0Gqa4FuPQbU23Wqr8LEyKnOaZ
 Fn8rrqKEmqmO4HfPdXgBB00k24Km8LEe1b0A7UgsMQCAZUQ3F7PcPIZUYhdlf0WUwhapAHFJIC
 MRkRM0aEIsR9v7ZPN,7PTvPaKrSKEOqr8LEGLoKKE8Kqy4,7RFPMd965vPRnksQ,NM79NKqtCL
 E4Km8LEemIU7IAI5.82Y3b0A7...X,W4.T0,N9k4k2KKrcC..UWZBHlJ2ZX,oZnVUkMEWkM224
 Xv.HsJUH,..6DKKr6FU7cP66cH9XcIAQbBU7MGAgYJCt76b0.UiVd6J.a.HWH,.Elc9wACGECJ
 L4YG,C5aWIVUI8UWZhfhV7k2MFN0Z0cH2YcIZUIgg76HvQ,NM,dNZPN.0GJg,A,KIbg,ak2gcA
 VWtOe1R1P.HkWu2M09Wv.HcI.M1MFN0FVcEK..84UoxCUnlI0GdK2.UCN1gcAVG,.cHMF22F1k
 Rqk4cIC2kdKqk8rlWKc4Ku2YcYicBhnZZUYicBAp76m42YKBcG7Q19RFfC42aZDp6HeHUv2YKB
 6m4p,UdQ5o8ogVZichgmZ3bvPRfC,Fq.dPMeX9,Y8KqR0GnmqkSKK0mrkmYZUsMdPRYZUAhu22
 .rFngCe1TW3,82UddCAav2Yghgi3YuEM2Ya,,dCo6CZvU7FzyIWGII..Y3d9OHHLGrkM8,7JM1
 AVaBgo3B0GRcHHmRk2mobyIcqk2ak2akYu2be9h0...in4k2OKq4qn0GRsI...UUgdDFOin4k2
 G5.kZK4.mWH,a2..kKoggBAHtCP.HMGBGnmqk2YygbUIaUYe6FE4qlG50GRqXo3hdFnaKtCbv2
 Yo3hdlkCKuK5kkCKuk4ak2AV3Z70mkC422Q810d9OHXnBBg,Hk2KIbQ5M0N0k2A7WGuW4,ND,7
 RFPMaGEOWy,Ye6VghAkoiHEOqrUuEeEEKIb.aUj,0GR6R1HL0Lu8rrOKnCrh0niin4a.HkYsPB
 XZFS0GM0Gek4k2MGR0..MMDP8N76T1s8,7BHtCW0ZXoxhm76dPM0GJg,A,aIX2ZaZhVFTkI0GH
 2ZVRgo,t76d9Oo3EEO0T16DqGoKqk.y2aWIVU23uqmWbUAgmJCggghA9XUIZd.H.HeHAgX,NFu
 4aiQCsC,7RF1112Yukk.P.HU3Z723KLs0GJ.H.d9OHvQGrk2Yukdo8Q7..U7,.aGEiWaZBamRU
 7U7p6BPMUxcHHGEGJYEd.KIb.a.CrruKEenSYicBBr76d9O2YuEn4KukRYc3RccAhdQ5M0cN66
 sI..6Oo3AZUg7.A,YiV,.i2..kY...q0M8r,a.y4K4pVoBAR7Q.r0k2kYEq66x,,,AAEEUcVV,
 gcARe3NM.pVHNE.QC6690k2kdumXKIeWmkC4s8,tPMNmWaBgoVdQbUQei2eJZecAA..sIRNEsQ
 TfPRtQH1HtCP.H.HeHQ8..AAH79GnIqk2M0gcCN1aU7MFNWBU7kd...UnxBHtCk2MGBGICrruK
 ECGEkIEz.GJYM1M06FsIR,.ktM8N76dlRq.a.a2x1...uGu4qnAZU.,78YAjfP,d8H,a.A7aKE
 mXAhcC7Q19RaGEUBU7.a2B1mHE8HEG30Gs44rOOv86sPB1qk2aU7.K20Gs4Ku.MM.P76b0YC.2
 YfsP.M0U3p7k2U3lRU7.HeHAhd.a.YicVoBA,dCQ8h0L0.UKV7,EuEEiWaVdQ5M0kd2eJ,d1i0
 UgcN.ogVZC2YuEukR.,,bvPRvCPk2A,MFlOGdO1HU7U3p7P.HU3lRU7kYkd...m0q.aU3l4k2K
 2.kWU3FECpm44UvgVB..8pmCrmGra4KtQivgV7cJsM.p,UvcMIbUIcgVvMNI5H0sCPEV.QAUUU
 H,C2EKQ7UG,.j0QAUUQ26670aEl..82YZUQ8kY.mWX,AZUQ3X,.kbEE.kmER...3Xd2Yf68.u0
 2241G266kRM0S3sI...mXZFEGYUgcMRcA3ZHp3sIElc9dXdEMamR0GlmaUUChAW0aW3p7UX,2Y
 ukl.uGrk4.P.0GdKqt.k4cI.Q8kUuqlW4,7839Pe1kRo8ZGsER.U1Vd.h0P99,NPT9Np76LONU
 BxhYhighgv2YmhgaZZUwhaFKAhgEK0mpmGE0LK0GwMMN76RfC,NG.r76TfNgAbfC,,MA,tHBmY
 .g,aEEGLK0GneHEC3Q6QbUYgZRCp76L06JsCuqkqag2YoBhoZhZJbUQ7UCNPiXoBANFuaLseHE
 i2EeMNqU0,MPT9N,dCvFbaYv2YjpA0GR6Aq.P96pNDiom856OHHayqkGqmGqayacIY6xhnZiLB
 hiZgjxinJYdQbBM0HeFqKECWCFEG3q.HcQ9fN,dCghiIiZpgnRbUQdZJCsFIeZpgEJijRgcIiZ
 pAWLKoBAZvg,akY6SCGE0HE.M0ZGcK2PM0HM0HkZ..Opk8LI8rmO4d99,FK0GmKqtY3199AAg,
 AVJpdIB7YiUQYUAaMBZUwdG78RPMPHEqHE8mvaa,phX3B8mIin4k2a2d96v76X7K,7J.aUHtFM
 PR7N19R196L76199,7QHtCP.HkY6Q,t6,7A.M0QeZBgmFcEICJLU0,NFs0mK0GOYZUIggRhgsP
 MNYZUohdQbBU7kYcP,dD,,66TfN22AaUgcCN1M0K2P.HMF..9WvUh,L0MPTHaaqtGrRq.j02Zh
 xhY3Yx2YClIEI.v76VN8O0P965,6FTO1AV7lquGtsM222aU.P.HMOEMi1AVL,..O0HHSghiohj
 pgkZimRid2Y2x7M0CJL..ghi2ioJCrOOv89,7Q.HkY6Q..a.bON.....EEUZ,.a.HWi,UUghjZ
 ApVhRbUwhaFEe1uGs.0mWu2AV7MF.aU7p7aaBU7g6q.kRUh,ohZ3DMF.ZONbPN.A,HeFy4QYU2
 4k4kYMPTXX2YCVI,M0VHuWKEe1yKmu0Y242uac2iVZCN763d93,AV7IC.cQOqt.kX.V0.l1M8r
 ,akY6S6A.M08pW.AV7kZ..O3.d100.u4g,A,f0.41Uj,xND4qI00y4Y5196Llda4TGIOKK00AZ
 dQ5M0a2d1X,KYUQe,3C.Er.M0KIakU0Ls.UWwbzwbWAZBA,aU3p7P.HMF.m205008mv6N2YgBh
 nZiWg,cHi1ABMArN1HUL,AhUEraGEO0H1N0TfNBnmM8H767uHk2CJLUk3YhEK0GuM8r,akYMAo
 dUc9kdUoVUY8MEV9Q.Y3ipi8mIq.akWm2P.Hkp0GRqXk.aUG,U7EuaLs0GRqXoBARdM1vQQhRR
 bUA7QhdQbUIhUIbx6AU7kf.eKEmHEGrwoZaBhZZhYRiiohphhd2YaEuaLs.sP3fOreOve9TfNB
 HECWjpAK4rOOaGEGYUA7IB,NFQbBU7MJ.J96..u4w7QhUobUYiVloGKEGoYUUgdDZ6XdBHtCP.
 HkYcO,7D.H1UUYe6l4A,HU9,UDJgepdVhBFlw0bhxBN76bmUUt3CB1sPQ9aGK0Gr44HtCk2MEV
 9Q91.u00md42.ErUBU7MF.a.10.c6yHFam4k2gcCN1M09Wv.HsI.iGE.Ug.,NGMOU3l4MFNWU.
 ,,3d6PU3p7g60md.10QbBg,8Z1,6OTvR38PTXU2ZWFRI6M8rN1o82YoBBkU836AZ7B,tHB8650
 2iVZCp,..UBAV0,sI91.WGlmqpmWkBgoN8rN1Ad4lk665763d6,7JF0AVoBhoZB,dCvVDdO9vM
 d961fP5199N,Fr0GFin4AV7A6K4GroG5N76VPMA3MFN0dPOdXU..uqrGLESKqyKl4Kqmqw0mku
 ql.3N1gcCtC6F9fR7Glc9b8OSLYKqkwdWJhZFICJL4284RtQHXdYZUYidVdgV7g60WcxB30in4
 ..8Iqy4HePBvP,783Xu.QbU.bfCUN3YDp6kIUKVoBAp,UIBD9HECLu8LRA6ENkb22sCI6.dPMU
 WZBR7RQbBA,HWD,O3aIb.NFu4ad6FHeJ8nIY8AVcIZUAAEJ.7OF...698nIin4M0HWcYiVxgig
 hjd9R1,,LONEFaGEO0EnaqmUiVx2YlAZUY8g,ak2G5Eu.Ujlh0niumtGbpRgohV7AV7g6i1wem
 Bho,WWVxggsQ8rIi1QiUUWAcGJe,lbc6r7618QUnltk4MFNW72ZecQC4I3M0j0..HV7gcCN1K2
 ,dENvPA7QbBg,.EYK4HePBvP,Ff42bPOYZUohjpgXZhpVmRiuMGR0AZvUKVX,I5.in4a..RvPC
 4kt0GR6A0mta4,dCUXZBEEkd.5069.uGd.UL3d7VX,2YX.GYBk2aIbcPTfN.CrIiHEa2Croebg
 sM.RtQM8rN1sM.,dCQAUioBU3lRMF2Y6hgV,i1.Ucoiu2YKVd2YI3BqorGqmmKEWmIeXBlmQii
 sPKavEV.I8d0qqmqq4g6Y8.M103..UGhgnZC2YcoAO3C5kRYhg2YoZ3Z998KR0mY..h0FfCa2k
 R.UEBgd7R68B99,7RNFlamREo0GRcJHX6lnkIi1aIX2hUQ2hf9FPNHvN2YI370GvumlyKrGrmW
 LuumdKKuCpoebcweg2YcBZUg6kWEd.in4q...Ud6G1fP79P9vEdfQNPHbvN,78PM0HcNp76kt.
 cJMPbvNp765uPRHt.umaK4sC,dJcNTvMfvQp76hOOEfk4akIi1O3WLK0mwe1.0moCLWyqvuKR0
 WD7HsC,dMY33fC8IqkRghu2YHhcIRbUQgg2YgBgnZi1JbUQcg,i1HM0bfC,NEUl6A,tHBmVUUo
 hphhu2Y,,o4T0k4I6.jOGd8G,NPbvNsP.Ee8rkCqpqotSKEGobq.84EbsCmqkC5,dC.Pk2I8V0
 AV7AVapZ7phkhio3ZsZ3mWhZZUAB70HtCk2CKEe1d8OQ6Ucogg2YsVdQbUIgUIbx.822ZaZZU.
 g,AV7FI8KECGE8KqA3TeIQgUQ2NPMM8,7JFWBk2aU7Fl0mFo70GeEE8IqkYEI8KK0mtamRU7MF
 NmYsM,VC,kt008mlmquUUwha3YghAD9RF963tCPk2A,a25f9bPO2YBx72amkS2aU.P.H.b8RZP
 OQiiAdiZiIxhHZimBBWmlumtU2Vl2am69,dPfPPHtC,NEV1UihC..8GEiIV8mIqk2AV7kWMF,t
 IdfQHXn,.23UgcPf1.Ui,.UWcMn13N8P.HU3p7r,a.1Gs.kkGLE4KmGaZtQ8mIi1A,C3sQ..Bu
 PZPPFtIRdJMG.NllaGK0mdGLtkt2BlPM7PN5POPPMN99aHK0GF0HFmGEGJdKZgcPk4k2ME.cPM
 1HM0aU3Z7QiUI5I2M0KIb.aU2BhVZBQecldGrkGruCLICrIqU7M090k2mqkCLu22Qgvg,AV7p6
 313XUYe6h6k2A7YBCGE.66POMZHVUcUWZhfZ3BOENWd2Y3,M084e13vCk2A7EEC06J...Y383H
 76M1M09WBUJ,uroCLWy4rN168Ad43YyZcdBggVn3BCrdGrkEEOGEWmt0mF0GF8mI0GeU2BBkdk
 aCrnWmtaGEK2r76JN8kY.,VC,FWBU7gdVJif,.Y3B0Q5M0b8OTvR3mrElmqpam4A,9Wvg,Y6.s
 IUcIYWAZvg,KIaM1gcCN1K2,7G1fP.NPHQbBg,...H,kayKmKaBRib3Yco8gBMHT1bXZ,amRcE
 .S3.Qib7F0GfaqmQCf8Q7PMdPNFdRN76hOOkpKqm0LX8rkqanBZBA,m2Ebg,66.UBlR...kI.2
 emxhkhdnxgU23.2emxB919HLqom......6IZPNBPNZPNRvM9967uHPU7w8...8pmCroebEJiZp
 gUYcD3YhRibpZaBhshgY3YuEe83PU7YDPvQe1.EXyql6IZPNB1ELWqrGLXyqlKbUI5..I585.C
 poe5.ELSLEenSwev2YhRCWKEe1h0F023M0KIa.o7Pk2KIa.9eHMF22.MHQ5qk203.ghu2YB,H7
 65uPVPSBeQTPPWWjhimRgZJbUQeoxBCLLCJuICH79Koa0JeapRqk4q..kkeHE4olGroyad6FTv
 CPM0O34KqmaXZZUQidJDNVj,kte1RW5lRghndCq2AV0h6UVZB2YukZ.4Iqm411FN8kYOYhhARN
 MN9PTHECWVZhgVI37k2qqmo3Uukkm4in4AV7gdjVndEZvP19N5PMb9RFNP9PPN76PvQamRA,0b
 mpZVZhglkEE.sCEYKqk05sQH1..Hl4kYcPT1.,t60rk8LLCKq.Y82YkBgm,.pVixha,U3pd2,k
 ta4,t6,7Q6O9PMCroEeW2..I5Croe59eH.70MJV12iVJidg,kRkdKKtO56FT9H19R9fQFNMN76
 bONZ16JHvMLvQFN8,t8ggm,IiZtPKLuUBAV3FEGoriXBA,.sI6Gc8rN1HEfEveHEUv2YVRgoBB
 eHE4olUv2YYJbUYcjRAK4bf97ml.rl282UChcL3ZqBZv2Yqp3a40GRcJ6GUc.GKEEWyql.bHma
 KtuGbKqvWGvmGESJK0GvuGo.H,OpoKantHVPN4ouWLIGKK0GFWom4aUYdVBjjhioJYdgV7.b8O
 .rN1P..w64IrCajd8,7819NZfCa2.TOJd8611IbUAcG,T0M8rV0,sI44.Wmdu0I6694Km8LEqG
 EU0,T0H79,NMR1amRMFsF.Q5PUG,kdkUuqlW4J,I5.a082.FX0tP2ZHp3.Y31XUEOamIMFsIME
 Uv.Z0U7phdZivgV7A,1WVRAcCQAsCPEV.wcZZi6,kbkREbkqKqqamR0mqKqqu0666Aqk2QeoxB
 Cb7phdZi2xhhBgdphcghZhhdM1aEbkkCKukIiHECpm.Y6N0sMd1N76bON.uqrSrIqk2KIbMGRP
 OiXBIc3x60mYuqogV3pd27F9HYAAb8Qum48ssHpmWb1xhi,ELCZYRcoJigZcZRiX3Ul1.UiQcj
 pB.7ONbH.QcjlkaKrKKto3cQ...sQR,.G20EtH.,6.63,E.0.a.2..AU0u10U.2.44,s,0E.a3
 0E.QEU..2V.6.zF.2U.E,9D6..EGE.4E.E.EECOh2U.2U.gwzB.rhJAU.kEE.0.3o42.0..o16
 ..AcmBhVZB,DX1.0E65.2..xtrobTHj8shobAQbyIklbcj,kVy4..l6.,E...F.,.W.0EUipt2
 oZQo.2cyh.,eT9E.qxq2gbiH,.FS0...
 --- end of encoding ---


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Ноябрь, 2016 15:44 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 340
Все эти платформозависимые константы... неужели в ББ нельзя сделать что-то типа sizeof(address) и тп?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Ноябрь, 2016 16:10 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Вообще, можно.
Допустим, ADR(rec.field1) - ADR(rec.field2). Но будет громоздко в коде, думаю.
А, и это уже будет не константа.

Если добавочный заголовок сделать типом, то да, можно SIZE(ExtHeader).

В итоге, поскольку на уровне такого кода поля используются многовариантно, для экономии и т.п., то вряд ли это что-то улучшить

Если только отрефакторить с union.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 06 Ноябрь, 2016 16:16 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Когда-то я экспериментировал с разделением ядра на несколько модулей, и т.п.
Связность высокая достаточно этого кода.
Сложность только возрастает.

В итоге, возможно, оптимальный вариант именно такой - монолитный модуль.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 09 Ноябрь, 2016 12:42 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 981
Откуда: СССР v2.0 rc 1
Хм.... Швейцарцы либо накосячили, либо из своих соображений решили магией заняться))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Ноябрь, 2016 12:12 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Что-то я ступил с "магической константой" 19. Это просто 4 + 15, где 15 = 16-1.
4 - стандартное смещение данных в блоке, а 15 добавляется для округления в большую сторону до 16 через DIV 16 MOD 16.

С учётом этого выше const19 выбрасывается и заменяется на blockDataOffs + 15.

Ну и DevHeapSpy целиком:

Код:
StdCoder.Decode ..,, ..wr3...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
 hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX
 7.2.s,MUv00k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O
 NbXmb.2.wtQl2kXn3,6.cUGpmWLuOpoKqvCbHZiYpedhA704TeKKw.bHfEWUmL.6..D.X9L6.C
 cIhgsNHT9N9ntQ8qorG4704D.CbB,708T1U.Esf3TE.2xOF.2.Qb8U00.bnUGLu8ro8quGrmCL
 WKqtE0E.kHE.0.p.,6.M.6.JFyuv.U.2m,.b.1cUZT1E.sA6.,UO.,.16.c8U,UE0,6,M.E.em
 uKld4N,IklTeoZg6hgVZgZJinpZK,6.C.2.C32.u12U0EHQ5BFnE2PP,EHYABlREsE2FJEyuv.
 .V20k..E.e0d8mBE,5TeEdKLqKKtCLLCJuIepZBGomCrl0ks,ktuGdKLqKa2V.ISE.Mls,se6.
 ,k,,UnpZHldGrwmqmGomCb.AS.c9Ajg,0EtT.2.U6UWV.2.86.c918R..,E0E...N,,M.6.,.V
 Ngp00kXat.wnjl.k.E,2kmI.,iSV.16OE.6.vvq1EnXE,IklT879HHfPLvQR7HHfPL9F9vQs.E
 .sHE.cFE.AUyUHZiYRchZgnpZD3iZphIxhjZh2BhVZhjxgcwYHBjnZiZhhjIenJiXxZ,Jgjhio
 xYg2YbAcWxB0GVmqkCqp8orWrHaW0Ikmj,6.Q46.I12U.kzV.IZ..5.V2A0AU.E.q5.ZD36.c6
 E.606..4E60E.6.MT..0.040.O22.1cDsI......kH.66..X.16.2Ux,.6.c66.,U6U..M.R.1
 6.MT..0.q32.C20E.AUvUH,.8ItyqvCrm8LISGWyqlKrL8IVqGaaqlKKrCrmSGK0mH8Iq4qlUU
 YddRgZ,HF,y.4E.ky..2.I22U.E2E..AUCU,2.AqXD.B54DOormKmCLLOormKmGomCrl.0E.cW
 61MRE..CMtj.2.UDULV.2.cB6.3gwP.0..I16.M.EJ.1.V20k9kzrk2qGEapgapgqoaGIWmGEu
 KrmGEuGLum4ak.Ul0EtL,2.i0m.4,2.1.06,.AUBU,2.0kM,.6.Yj.E4knE.0.k,,0.k5kYU..
 h,86E..UO.,.1.e0.072U76.yDoZio3U.AK..0.L,N.X.0U,.,Y..4E,2.16.6.JNR2NIyDU.2
 .m4S.a32.5o6U..2,w52U.E,R06..EGE.4.2.24E.0kX..1.,6.AU3.H25cUZT16.,UF1,UO.,
 Uz5.2Ue2.6.2UEC.6,6.1,1M3,U.I,AU4U.o0AUm2.0E4k.K.Y0AUAU.o.AU9.l.1640U.w0AU
 iU.Qb.Ur2.0EDk.S,gEAUO6.0Eok.0,0kU4.1s6EDk.O00kCUcU.o,QUL.16.QUuV2Ikmj,2U.
 kMU.EBE.0.z50EJYDI.2GE,k,S6YW0k08Mtr.2..c46.,.1.e06.2UwK.0U4.b.9c,k5.E6k0.
 N.9.ICg.6.Z,9.0Ewk0.H,9.gZ2k.0G.2U.Ik.k,q.0ky0.9.0Eqk.qF.6.ZC.AUV.7M.,k0O.
 0kV9.1656.r,5M22.B05c26.711c8k4l.m.0EYk,q.0kKk.S.0kQ.Ee6.5c2kwK.1M,2U.2Z02
 U.AUDE.QRQUB.76.AU1U.Ac2k0.x09.0k75.9.Yk,k.i.AG,6.1s3Et6.1c56.h01MA,E.0kTk
 ,4,YQg.6.V.9.Y,AUDU.I5g.6.n.164,U.Y.g.k7k0.h11M.6.jf.AUB.t,5M1k22.1636.3U.
 M.6.30C.0E,U,.x09606.9c.QU,E.Q4AU3.3.1M.k.0.1c,6.pN.gU2E.0EO4.5M22U.2b1k,4
 .gc,k,4.oE,k.4.,EAO.1M,kb1.m.0Ez4.O.0kSe.9606.L49M0Efk,2.23gU8E.0Ez0.5M2E8
 lzrobGoemoW0GWKKvWom4KsCJsarRqEIeGJqE,8k20LtyKpKqlGr2qHE8GVmqkC4IYBAVjJibB
 giBhuBgoBhjph7gbUIYrxirpZjJgZJijphiQgcJYBAVXxhiZimBhWlr8rtakS0GFyIlKKt66PP
 O5fQTvQnvQdXnJYBAVqhgmRidxhiB,IUHBjnZCyWntM.3c6PM05HsaLtaqnWKuakS00...6PHv
 M91HMD,d6GorC4UX,3c6PM059O1fPDPNbP0v76IUWgV7AhnRiphgnBVx.IUBIZeAZBgV7AdB3e
 DJeIhV7AVH3YugbUQeNReIhcBZZUQdZJiihggZZUQeoJidphbRiggV7AVExhmZinZZUgdjZAYZ
 UoedhAb99,tI9fQhPO5PNb99,tIdvP69,7IZvPVPNZ9RHPNb99,7FHPM69,tETfPdnrmKqKKtC
 LK0GWyqlgB69GomOLWKKlKrnmGEqomGrkin4qk2CobuodGp4qk4ak28rmCrrmquGroyaUgbU2b
 v2YcIZUwhihgU2id3jZZhUIiZ3imhgnhgiZin3YmhgnxB.3PSdPNb96JN8PM0H6PHfP9vJ,ND,
 NBXdAr76Fd8UgBhihgUAhn3YpAam2Yk7SQiUYhjphbZZUAhiggi2YmhgkltK4galEJ0GtKaj,.
 ..F86v76ftC,78J,.,ltYhdpBFGsaKwUcBhb3hUIZdg,UKhgmZiB3Yx2YnQbU2ZeMP1fQDPOR9
 63PNdvR9PNR96dvRT96NPOQiUI3.Wor8ra0mS0GNiHEW0..cR9fQdPO5PMN9659PfvQdPNZ969
 9NDPN,NMR9N,7PHfPC5klmquSJEqXgBBSZf2YmIZgBhihg6VvgV7AVXFYyKt22GnR0GIsMNPRF
 00ro.3PNd1YhZpgo3YqBhZ7699ND1cR9fQ.sQ.c8HN1UIxhkhdUg5l,UI,VPO..CKqQCQiUIZd
 UBAV7weUg5FdAJtMNPRF0iGECKqKrfaGEeGE0pr8LuoZkxhdphoRbBgV7YeN3e3hV7AV0ZhjRg
 f3Yx2YExd7pdIhcG3YIxdUIe3RcDJe23YPhiiZiVxgbhgYhfBA,H6R1vNp76LONZ1R7Jn9Q9vC
 PM0aktaKxKKR0mYuIeKoXKIdin2aEIeGECroerm0mrOKEOKtKqm0GlmqrCan3YeA3MM59RfPMN
 fC,NGR0M1HM0Oqo8rtGLR0mY.qk2akWuIWin4ak2CIqKrtEEqHE03cI....C5e1sFQb72Ze2Yo
 xhoBgg3YnBhu76JN8ErKKwGLR0mVmquC5in4aU3,Pk2OpoK4v76.Z0.2ZKBhZtQR,am4aU72hZ
 Bhb3hoJbUA7w6q.U7M1gdjZgZ76v76V0I8y2.qorG4bf9P0am4ak2akkmKqyqleHEaIbsF..ME
 59RHvPRnS.I8.UHhgm,umUCKua4H769eH7uCq.PuQD96v76ZOF50g7sQggnRiVxgZBZUgcCV7U
 KBcGhV7MP9PPp76PuP7XvgV76Q1fQPdC,dI9uEM1HM0H.AgohgYhZu2Y7V5lR0GIcPfPP3PNZ9
 6TfN,dMn1Cqu8LtKKrGLqaLE4Kqmqr.,d8H,HsMQCQihIbUA7...QggtQEECquIC...6O4KsCr
 oM9p76H066Fd8,7RUWBjo,...Oqr8LEWqm4aUIZdU3,PUcV0ZhjRATeNBvQp76.in4qk20Jdyo
 VKIWKJdKIESomGLYKqk05.in4ak2OpU2YdZiu2YBhgod9H8R9PPrN1HcE9uFHeHPM0H6O..,dC
 vFOin4aUBhgoBANuPTvOf9QVOMd9OFd6LONZfP6O9PM.EFmGEaKuamRqk2akYOIEaKuuGf4Kqa
 KmWmI0GH0GIaKuumr8Kp0mS0maKKucR1fQTeMJP8,d7,,Grw0LEqHEq2AhiZiIBjkBZUYe6hcC
 hV7M0..00aKuumYuKuOpkmKIam4aU3l4akWuYUwcZZC..rl4a..Ack3iZphY3Ycoe,JeUQiu2Y
 ,JeGBcN3YDpcUQc6BcGRbUYiu2Y,J8.kIin4aUKVghgiZZUAhg2YeJbUAdC,2YX3hu2Y137in4
 aEV.YhZphUIbx2YAhcC3ZnBZvgV7MO,dCv76VtC,tJFOGNOF,tQrOOv86576V7K,7FT86HeH58
 8HP8,NFk2IhUIbx.ZOFVOF18J,tMF96pND,7RreOvuC,tQrOOIbxsMFvC,NGRWeBZv2Y7p7a4f
 eHdOGN86FtMF96vFMWpI0mb8JEWmo0mS0GqKKramRq.bvKNPNR96P76XNL,dC2aMhV7g6Ack3C
 QbBg,.kd4Is0rm66Un,U4,2Yo,.CJYyIdGpVWoUA3cJEu8LR0mU83IapoaUwd43Y1Vvg,.QioJ
 iUIbx6R7tC,NEV9Q68b99,tQdfQHN1HMFRWHBck,r,.UdJjZxda3Ycogu2YH37.00iom.d0HdC
 ,NG.qU7.lfC,NG.cE.CoUCpW0Gn0mbOo4ak2mLE0HVWJRIe3ZeJJeC3YkgV7AVwNAl89,dAl89
 ,7BleC,dI.XN1HM0tnNWJK0mOWJR0Gd.8n4ak26Cl89,7A18Kp76.Wn4ak2MAX,.GLLCroM1H.
 81PM0HM0l96pNDCJLOpUmIIaIbG3YZUYiiIgVRiZRfkgfdQbBA,HMG2jUYc7peUIapo4576V76
 d8G9GEWLEenSYiiIAUiAhY3YBxd23Yo2Yf2YloaUgcCZ6EdKIeK3.0WUQedJDTGICJYy2FtEFe
 IF7SHN8N76df9.am4ak2KIaCpW0GdKIeUogV7MFRm4UUMOp1rN1P..ocjJihxda32dfC,,.UH3
 7Q6M1.MGQeio8..H767OGh0gbU2aUY89m4M0.CJYEIUHpZK,.kIam4a.NWBAV7A,..kMOHEiGE
 GLLaKm00YadAZBA,9eHq.2Y4xhmVvM0HM103.SJtaKuKKb4qqKKEWGue1.kR0Gf4IdQiu.sH.H
 ,O3uqkqqmeHEiom.ROMPnR0GneHE.50rV0,cN,dCvFXy42ZoBZvg,C2.6T0HgeHEGoo44uma4K
 sCJu85WGFCGWKKveneuKmKKnaKrKKm8GK0mtam4ak2mbl2fu2Yn3Yug53dETuHNOF1eH3N1HM0
 IaMJbUQCkdWob83c6PM0sAeHEC5sEFOEZ06BlWn,8ogGpW8m4a.KHg.sIkYuIe8m4a.OHgeHE.
 aIbGpWEFq.waMJbU.Q8cI9OENe6PM06CeHE.8pW4Ia.aHgeHE.CpWGJFq.2a,,UAxdCxc7pdIJ
 2U0FE.4IbaJdKoV8m4ak2kVWJR00.0Je8JFq.6FleC,,6ITOGRmW8JFq.MFleC,,EdyoV.3N1H
 .OIgeHE.CJe8pYuoX8m4a.4HMWJK0mM4Xg2YlQ4qk2AV7p6FFLa47OG.5Vd2YaEughjZgiIiZp
 gXpho3YygbU2ad2YI,M0b96pNDGbhViBghhgYQbUA6EIEFuGFamRq.HM0LONZfPsF99RdOSVPN
 ROM2ZoZZUohVhBHtC,tI18Q.ohVVBA,HMFNmYOIEOKEqHE4nMWJEGJYK2M0b1.UY..I2ZOF5uH
 IYdQbUgV7AV7g6.sAl86d8G.HsQEF0pb.U3lWU7QCUG,.gcCN1aEyIak2fu22U1xdBpZ7heiRh
 ixhrphWg,m5X7Kp76.kXKpYGIFqk2Um2fu22.cI9uIf8Hde6PU3Z70GWaqk...UfpBocjJihBg
 oJYg22M09eHMF2YLJid,QbBA,PEc.66RONl9R,783fC,dEN1HdC,dEN1rN0Fd8uqmWLuIggxB0
 mouKECrkqqm0mlmquUUIZdg,HcJsQHXu.9uFQbUMMDfCiom.d0rN182UoFEenSQ8kZKKt.69,t
 IRdJMG.NFluGu4qnaGEGoY6B,d8,7BHtCAVnBB0GRqXoBgbpZnBBQZU2hZBAUD,aU7p6T8F788
 be9h0...Iad2YI370mta4e13f9bPOpXh2YHpZ,ZcG3ZWpZnVd2Yf2YnBhu769eHUn,pVcQidJD
 iWlgad2Y2B74HP0GJ0mMOnRqk2aEd.o3cENvPYZUQei.H0.H76L76b1HN1HMFcH99Sin4q.Z0U
 1Zhp,FONHvN2YcQidFR.M8p76H0sCPUcI3F1sPB9619659PUUAhi3YkBhsVUIZd.cPTfNNPORn
 teHEa2.82UixhaZB66p,FtQHXUYc7FtK4MOkJ2ZgBhihgLhZlAZd2Y2VgBBQbBA,Z0cPT1QCJ7
 6F7PHX63Yf2YgBBO3qoI0mJYB.in4akWu258Pf1W2sCP..cJHPNWoma4WmIeHEa2.aEI.662Yq
 BhZ76HfPKLraKvKKtAgg3YpphdZin3Ye.klm4cC,tEN1QbU2huMGR0U0,sM.,dCvldo8QcghC6
 9,tG91Iejxho3ZdAZv2Yc3Yug5VtCPM0SJYaIasMN12YX2YCBdA3Y2xdBAV7AV7pd13ZcZZU2Z
 XZhpZ8qIEiGECIqK527EICKqQCoZnBBamI0GJ0Gcy4koM8rN1aUX,2Yuklm4c9RPNl1HkWsCMG
 .59PG3IZU...Z06OrN1HMF2YKBBW2sCq.Q6UEBgdphohdZhhU2ZaJ5hOO9ntocmBghhA,7RT9Q
 N763vPd9RTPPp76.amRq.h0sQcC.Q539AN7639PL99uqmWbucEN1r769fP7fC,NG.rV7A,.dGs
 sM.F89WLK0Gw4HK0mweX7,66FVppBd1k2GqrGLK0Gs4qouaZZgg2YmhiiZhZphu2Y7,M1sMN76
 59Ap76HeH.I6.7XUIbx68VuPZ1AB0GWa2Bf97vPdP8eGEOKLkRqU7Ad47NT9R,ND,,Emy4pVap
 ZYFEKIbG2Qgg,G3,dCvFM..,,b0Q6Ug...PUL,.2YX.G2AV7p7CKqK5Y8m0Y8IZYxhoBZvg,QA
 U63YukVm4kmUcUnViQC66JFmyav.HeFWmlm46J2Yh2YXZBd0,7D,dMT1aGEyIdsMQC.L76516G
 ,dD,7RTnI0Gek4M0HcNR7FZPMjfI9vMd9859PWorgdeYgj79C4b1dWg686Gs859PfvJeGmy4kt
 .00.WIKqk2ak2a.0prUaBhgZhg2YExhmVbJiZBjmgadQbBU723Crl4Kr0ml.0mkuKmYgmBA,dM
 NvPQC.HcMNvO,dCvld.30mWH,a2EKQgg,aGEiWlIaUQZU2B.y20mK0GOamRU7ggiZgUIbx...3
 9PaGEiGEWmlm4c9EEqWlIad2Y2B74XU.qGEWqm44.s8,7BrN1HU7Igk2Yug539PLvC,tMV76pV
 hAavgV7k2aLEenSQAUI,m4.J7NQ5M0Vnou40GRqXloaUYc7p8Z1.r76FVixB,7QH1AggJiZBgY
 BjU2iVBBkruKECqu8LtEEmqo66JN8k2W52ZXZBFWB7PHfP99GT1VPMHfPM8J7NT1M0j0Qei...
 HFS0mmuKm0GWy2A,HWH,..uGu4qnMD,tIRNEEqianBBaWI370GIeWaJCkr66JN8k2sM,dCg30G
 rKKw2Yukdo8I669.a2.M8iWWZhfp366LFo.sHM8PM0Hk2gcANGAaUAdC3YHp3sI98JN7631d1G
 JY.4Kt8rkaLEemIU7klUExhmVWZhphgv2Yi,cH9XcIggRhdgV7k2g6KYcIZUIC5vPZ9N,d8H,a
 .5HR6IT18rmGqR0GrK4,,b0I669.a2.EE6839Pu0u0Uc,kbEEMAfV2VlEJkIqk2M0KIbQ5M0aI
 XQgUQYUQgk6JFWBU7EtKLrm4,dC2ZHp3..M8qGEC3..0nIaGEGYKdQC5.PM0Hk2sJUmhii,x76
 NPOweh2iVBB667uHk2Ew4HEenSsM.m4W2.jO8J,U7U7FI2aUQYUgZlAZUoYU6S,7D,7SXN8,7J
 .a.oAEdUsZZUAjg2Ys79aLEiWgV63Ye2YYFK28En.59AHN1HU7U3,M06F9uEFdQffP69mqosJP
 ,kIiHE0rka42YuEM.H.l9668..FuPAZeYgjFEa2aLK0GImqokJmqouaK,HFJUd.a.90k2MGIip
 pB220HEG3U7U7ll0HEUUYe6FEOKLGIt..2jUQZUIippBIZYxhoZ3n96.F86Ug6I..2Y3p7U7U7
 p70rka4Y3.HFEa2WLK0Gt.J,H,A,K2U7El22IggRhv.pVXhV7A,HkW.A,39PI5uqmWbBA,akW.
 AV7p6s6.g,A,Z12YuEIC3..9fPaGEqGE..El....Hkf..uXgVL,EEG2M0oA..n99Wml.Pu8EYy
 4ULB369aLE.WIE.28..in4k26F.69ULh3.H,.,dC24k26SEIC4.6GTXd.r,ADYBs8Ef..H,A,9
 0k2A7856624EE..EK2D.I3Y3n96.F86Ug6I..22.akWM1a.Q5sMN12YuklmanVioBQ5MGRWX,Y
 8mWXZBEYamRq.9WBMF2YEBgdlasCPM1I850MH1fQLfENvP5HEWGne1..bPNNfC,dEkRwhiJbUI
 cDxdAVdQbBEf.Uu.kRohZFR.MNYZUwhapgnZZUYgjZCCqrmKR0mY.iHEOqrK5pFVy2sCPU7QAU
 I,l99Y3Z99,NNp76H0UcI3fXo,Ic3,YAI5WGcyKtEsABY6oA7Xd22OKLkRq.HeFG4,ND.YAI5O
 42Y3,QA.2YuEM..,,b0Q6Ug...,dNT1,dCoc,ZdHhcvg,S36851665,aGEOWypgjhiiFWU7gAI
 5C3MG.Nll.aWfMAZ,FtM.RtQkKA4Y6A4,,i1AdC,UIFKQgg7Jg7JFmM8r,o6FtIR,..C5aWwgb
 UQ8..CrmmqIaGEOWcQ8..UUYbUgAaWIVBk2aEnyquuaUUIJeJhcvgV7kWm2P.HMGR0.d0CIq.F
 ON..R,aWe..HsM.,dCQAUioBQ5MFRm4AV3lRkYOYaxhpVI370GIsQ99P,NOb965vPR9R1PORPN
 796HfP,tM.,d8M0a2TfP,7JFOFQgjZhUIbx6IT1S49fPPM0HkWmY7,.sIktKaiYiVxgd...cMM
 1H.gcUQgjZB.cQgV7M0u2M0RPN22o72ZnhggBZvg,IiUI5Wml6G66YBsP.sJH76Uv.T1,dCsIU
 7,.2Yf2Yc,kbUcI3dPMD96JN8,N9,tI..QAC5amI0GWEtUp,Ut,516JTHEiWc2ZjpgaFWaIfYB
 .WWdFYi0o8Uf6P.EJYA.l1Wml6G.EYy468TfNMHT8FmqosJaGEe0.KKEenS2jUQ3CJL..ohZlI
 0mK..UnVd6FcQ.66J7671kf.996xND,dQ,7FTO1M0Bf9...n96YB2dU.mGE0ZmVa,,lrAZvg,A
 V7p7a5F,s8m4O3.M8r,aEwUc..EYy4H76J,i1AVZ,l1996P76ZvCPM0g6.HeFKKEuHEWLEGJYE
 nY6..KKK0mw.66J,m0..6690MFg,9WUgdVJCUvgVB.506JFPObvENPREEWGn..UsZZUQitJbU.
 M8plVm4sCPUK,QCI5.iHEGqrG559PUIFKQAU6J5u2sCPEVEbEmER68VuPEsAB00oA7Xd22O4Q5
 A7G4,ND.YAI5O42Y3,QAUUI5uoYmoRqk2A7Wmlma6VUIZUYAYbx2Yn3jd22Qis3Yw2YcQA.LFN
 .y46PsJ00M8G3q.HsM.kd.5069..k4M0.G3,dC24kf.5XnVUQ266.HMGRWX,Y8m0Y8.sCk2C4E
 Y0GRsE.K4.b1RtQ.kRU7Ad4,UIFEmnSMSH76B,n96tll.UfsMN12dd2YIVUIe3,CKq.PM0AV3Z
 7AdCR6.G3N,U6tC,tMN12Yukl.uGrkRU7gcCN1a.U3lREd..QbBMF2YI3hd,.P.C2.IcgxB0Wa
 ,....A382Q5HEf.Uu.kR0GlmagcPcCYB66BvPuaukb.M0H6NY3NPOohjZZUwhaFKggi794Km8L
 R0mY.i1QAUI,.WIR..30Em66pVcsP.H1.M8,d8O4Q5A7G4,ND.YAI5O42Y3,UcQis,6G.N1F0H
 ,7XdsHZWcQgg,00..sJ.0GSEw.q.HcIG3od7ZdBA,sCsM.,,b0.69....Y80GR2av2YaxB2Yu6
 6BWHtCsJUcUnVUQ2M8OWy,Y6M0HeH.6JY36J.M8r,C4EY00C2UZ,ktELC5.Q5MGBWX,Y80GSkw
 UcMS..Q3.WoI002YaxBcCY8gV7A,98H22.Ee69.27r,UUI5C4ELu4i1cHq.sCMGoAEeUcEICLw
 m0aWkxhdpBbnouKuyKECKq.,d8UgBBuaUIbx68Flwg3516JA3707vPaGEG2WGqa4F86LFqEf.r
 N1AVjVUI5....71qobGYcYB27.h066FVqhAa4whalmGLEaKrYB22U7FIm4O3qIEmnSwhapAH76
 B76yKn66t76NPO27.h0aGEG3q.akrUuUn3jUYc7,M9EYUh2YgBBWorsC,782hjJiUwhapA9XaJ
 ijhhUYhZpAaKrG5NPO22U7AgYJiUI5C3MG.NllsQM8,t8WGqErc8,7PHXL32,tPBfNaWecQkuU
 vk2AVckvKqH8rm0GqyqrAhixgUogjJiUYichgUIggxB0GuWqkGLECqruaVlt0mkGKmggnRiUAg
 YJiUIZd.HcMcC.I669C3MG...412B.y20mKUBU7ggiFR...39PaWf6851c9b1,VlU2Vl66A4r,
 akf.b0..ESggiFW.HErEEEbK4FdMsCP.HkYMM7fQmHEC3..R1HFe.A,a2b0.UWFLsNQYUQeiA6
 Z0QCA3d0,dI.39PLP1HU7kWm283Eb66Fd8,dMNHEaqt0mk0Gn8rm.2YeM1M0gcCN1AV7MFN03n
 pI5u4q.aU3p7k2K2r,aEd.k4kWm2W0FVg..IA.dvR.bXd2YGh6..Rm4MFN0Z0.EbkW66W4UvgV
 BEdQ6UHhgVJiX3hEBgo76F7RFPOb99,7RFPMeHEYB66hOEZGs4KuWKRA6A9TeFaIb.r76hOEYB
 e1.HtCcJcN19RFPNZ99CrruKR0Wg,GrkI5L06Jggv2YaZhVxgg2YjVZ79,llGru69,NOp76.iX
 aNRI5y290I6.HHRMAr76NPNR96pVk66B10GRcFQ8r,HWyxd2Zcc..69GLoaaiYiVlI0Gek4M0B
 PMd9O2YuEbaYvU7YdDxdEhV7AV7AV7p7CJLO3...QbBU7oggBgb3Yukd....,NHTWoQbBU7YC.
 U9hA.Y3b0A7..UhcNNPMamRq.akYOYaZhV76xND,dA,7JFWUAgXZC2Yug5d9OHXaBhmRCr76d9
 OHXVRgohCUVRgoVBAV7M098H2YVRA66sI42GLoa4bPOM1aU7gcCtCk2m2U7MG2Zo3B0mS0GuWq
 kAZUo2x16JF0NPNUdRbUogj,pVIVUgcC,A,T12YuEu4ai2ioJijpgaRiP3aRRbBA,aU7lrO49X
 w2Yk2YIVBU7kYu2..kkSqImGEy4kJ0GOamR2385dvPZHEGrk2YeM1M0Ad478B9P1XyUd2Ya681
 vMd1mHEGLoc9UUo2y4ESgZchgV,w7A3d0,78ohZ3D,NMZfQMNNPNK4,d8H,a.aIbMM51mWoBAR
 tQkR0GuW44466pVV,q.a.98H68gik3Ye.a.GLoaqtYiV76pVHdJsG...H0.AZUQ3B9PAZv.H.H
 eFOqk.vFbaYUYe6VG,gcC,A,QijphUIbx6RFPOiHEGLo66pVaBgoVv6F9uEFNOHtCk2EnEEkd.
 .Eoc9M8,NH.M06R11.Q7..U7,..g3kIi1A,wBgAe1dPMuGs.i3U7U7VgFEu100MMUU.F111MFN
 uI9mk.e1bmU.sQEEK2U7UHpZ5hcI3ZVRAkJ0mrkmY3BPMd1HtC,tIR7If8JFNM..kdumUktyKr
 umta4amRq.a.aIbsI..MMaGKYadgV7k2MFRm4A,HkWm2P.HUH,...bvPamRU7kYOYcQijphUQY
 UUdUy,Ye6l4k2EWkdu0.UnlImGEGXvg,A,A7u5...oZoBgbN8,,0GI6NSLr0GJa0A,MGAhUY5N
 OFRGs4KuAZU.P.H.A7O4YbUIaUY82YkBAipoqJEkrO4gV7A,H.g62YkBgo,kk.qGEC36R.66Ll
 r.k2.9eHU7.9Wv.H.aIbMOH,A,6RF1dPM0GRsIO3i2..h0H0UoVUQ3B1HtCk2UH7If0G5Q3.NF
 n.cN19R66pVoVv.00CrruqRqU7M0kWWpYGp4a.H.9eHq.a.9Wv.HU7VH,..Y3g,A,9WBU7g6.U
 3,9WUQeZBA.rN1P..IeZRiZZiBBgmtQrN1HEfkl.e1.rFlcC,dEN1rlmcCa2kRqU0,sM.,,b0Q
 6UgsG.Z0.S3sM.,t6EEG2AVW,.I669,tIU7,Y351M8,t841.UDVU.UZVu...84H76LFI.o366A
 4Y6EEUvk2w8kd...Y59XUY6,NFluEN88be9kdUWFLG5HVkAZv2YWZB,,RON23A39eH.5166pVX
 ,oZiVB.q.2YGhgn,UBEd.sIU,phX3B0GI8KqI5UvcJ8ZkVu..50H,O3qKK0mqyKmeHEiom.PuP
 7PRNPNr76ZPNB99,tPBXgMONVg2YfZZU2ig2YslkmGEuKR0mY.iHEyKnMNCLR00kM0mbOY7,M1
 AVUYig2YaJbUQ8sEsC,7N9vQeHEi2EekRohVhBN76dPOd9P9fC,tG.RmqQ5dPMmWoBjkJbUQ7U
 Ilmg,30kqyKm0GRqXCB7r76TfN2YuEMg,qKEenSQdZJCEoaaAxhVZgZZgBxBFd6FuPb9RjOOR9
 NTvRbf6HtCPk2aIXghUQ2RWUY8g,aEtKKn0GRMPRdQ9fNbvC,tG9fQkXcI9fNVeQTvMFdQ9fN2
 jgcPM8rN1AV7FwQYU2aU.k28ZEh6qk2ak2aU9,.oeVJicIiZpAGLK0Wg2YYhgn794KKMMM1M0f
 eHdOG6R,t6,NAlO8,tHZGIuqkqaUgbUIYrBB1eP59OIYdQbBU7A7GLEqHE4Hg0Ge.A,bmXkquG
 m4Ku4KEiGE4KK0GsamRq.aU7Fs0mF0GM.k2sI9PMZXEVcQei.30mWk3Yh2Yo69,dMNvONlrkm6
 9,dPHtCP.HU7Fr0GT00EEyKn66MA,NFRm4k2g6q.akW..K2r,P1i2kqyaABhnZivg,S368PvP7
 96v76RWdUc.qHE0nIo2qKEC0EWyo4M0HWhpZmll666A,,q.akoUkQ5M0j0..o2aawMPRdPTfNV
 9RZvQH767uHk2Qei..MPR7QdfQipoqJK0Gs.aU7Fs..A,Cpm.....UU.91.A,a2R1.,NPT9Ne1
 PvC,tPBXUI5oZk,2Y3p7M0HkW.A,HeHABP.HMFg,Uv.P1cP99SkW.8pmCrm.M0aIXwBs6,7AUB
 U7lqy4576R0d0k20bo3hUI5whYp367A6oBF7Q19RmGE8GL80M0HcQ.Etogn,U5,03.W5kIi1AV
 7FwEM.k2Ie3,M0HU9,.o8.G522.oBM1M0K3.A4.T1unSAgd22wB6D4KEiWHBByYcogg22M8HtC
 k2A7G541g6,tI18Q.Ui,k2gcAV,3ik,.3tDztD3N8PM0A,9eHq.akW.Y72C22IYrFm66NPOb9R
 3N1EbQ5MOkMin4a.j0MO,ViBZUo2a4m2yKnOaZlIaGEGobU7Qei.V96PVg2YolIi1AV7lMcH,F
 LUH,d1,7JkU0Ls.69QfRJYdg,AV3Z7q.aUf3Yug5V,A,Z0.HUoBjk3Yug5dPMuGl4qtsOvuC,N
 GsOHtC,dOenS24k2sJ.J96t76dPSuGnaqmmKmCLLuquqqI0GH6Rn9Q.whWJhPJhRpZjpga765l
 rO49XPBBH767GEa2eaUg6in4k2g8Ue32..R1y2iKEuHEGrkMO7967OGEEqobGYloadQbBU7MGI
 hUY5Ud,EEGJYM1aU7kZ.kb8KpuokqacMSVnqyag2YHNEkw0ba,wBi3H79,dP1XdQ5M0Ack3iZ,
 .R,,tI10.cPk4k2g6.HU,,.I2zd6HN1M0KIbg,AV3lRU7Q8.L76.EKUUA7ABkWM1gcAFEUUUWI
 YBkWu2K2,tIU,,in4q.ZmV.2hjxi0ZhjFEWGlcC82AZvg,O30Gua4MEZ02amYaUwd43Y1,0rkG
 bu...k4aEV.QeZ,.FdMNvONFs4KuAZvg,aIXMM2YX2YWIYUYe6,aEuaKumaUIbxkbIhZRgo3YV
 phXVZZgUcP,d6rN1ak24291dPOdXg2YkBAa0gcAVoBhoFE..RvPd96D9PTfM19PNPS,NMRvMUW
 g,KIbQ5YcZpi2dMoZH3Bj9G9PMyIleqm68be9103XiQidlImGEGrokIqk2K2,Foya0,rN1..38
 PTX7phaxhU2ZWFR.iHEUnJ5kg0mbO2M8EfEu4au.EeabZ76b9RZfC42cAsH00Q582UoBAElmai
 YCin4aU7lb.h0HeHUg6R1nIYc7p8ZN8G3aEIeGE44c8U2h6...Y3ZN8rN1AV7FIGrkSKLqqroZ
 iVUU9hAc6H76B,cNHPNErkS0mMaGEG3q.HM0d16R.krsKVNLRtQdnuCKuqk2ak2K2r,SJtaKu.
 FlkSKKQCZP8r,CLEEF4Id8pUsHIYv2Y,3CktsQM1gcAl2WGJIC51e0AVL,.Udk2KIbg,9WUIcg
 xBa2in4q..6G9X7phaxhUcJ1WnBBmGEuqrOqlmquEtCLRAdC,amREfkl.e1.rN1H.UixB51sQ,
 dC24,tQHXUI5klm466sIU1,Y3.RdI.kfWoYkl.0mF.7m4M0HeHohjpA.bP8r76H0bPOpHKQAUi
 QCAZvg,QAUUI5C4ELu4kWsCg60GYKqk.r,.EIOLR0GfkI0GeW4PuP7PNN96FN8plaMNCLLwB9n
 RcE.8ZI,PPNPP1K2G3.g,V0..EdKqtG50GIO4h0b1sCmKK0GumWmZ33fC,NG.UKVcJ5H0sC.Ec
 4qoYC2ZaZZUYigcMHtC6O,dCoedFYsNM8r,HeFWKECWqpZchgdxA0GeW2,dRRtMTfPdPNl9RRt
 I99RbOOpHISJK0GoaGEK2MFcI.rN1P...kI2dVphYZhZRcoJighdnxgU2ZBAV7ogu22sQ.o8gh
 nxgu2Y1xhidQ.RNH91QbUo8ogjRgpRiu2YKBBcJM1HM8r,h0l99,NSp,.,NOb9FTvRRfC,lbY7
 QbUIAmWWJ538PsCqKR0mdKIeiHECKK0Gq4qtGrVeHECIq.rV7AVnJbUA6kM2aUwd4tEEEuquqK
 R0mU.OXD,M182ULBdI3dUghnxAwB.6JZPM5vOPuQD967uHP.31cHQ5NPMbXUI5UBM08ZE,ak2a
 EnumYuKsKLuWGwm0NlqmGEaa2VdQ5M0596pVI3BC2EIOKK0GwkIiHE8KEenS.30WGnmGE.q.ak
 Y6839657639PaWDJ8CKECWgBAAZUYe6l4M0HkYcM,t6u2,7J6638PMG68399,tQHtCk2gcANGQ
 gUEb.sQ,,3tMNPREEyKn0GqKabZic3YWQbBM0a.HWXpZnBB0may20HNMD0HEUBU7UHZimBBCLL
 aIrGLeyqdGLta4FtMRtQEWkM0HNYZUohphhdQbUAck,ErK5..376LeE3N8PM0ak2MFgcUQeoJi
 dlt..W0EKohp,.Er..EFIgtVWAZBU7kWuYv.HU,7Q.MMd9619N7nmQC3N8r,a.b0QC.U4xhmhh
 cQeio8A7UgsMH79,tIdfQsQWasBgYhgXBhhBggZ3n79,d6Vd6N76deIfGKoBM1M0A6.oBgV7A,
 HkWm2CLEe180A,9eH.HEWaqkm4CJosIdPMdPRb98bP8Pk2AV3,M0NPMb9R00CqRq.akYOYWVWF
 EGJYK2M0a2m4576.2YBBgmdEEIElmqpmW4BcAlI0mW.A,31pVWR5M0a2665,Y8...m0ZWd22g,
 AV3l4ke.xPOb9FTXvg,23aIX0GzGoo4KqktW4bvIdPM66B76FtQ,t6,d63N8,7JEWa4sIMHbvN
 FtQH769Wv2YeA3MGUUEbU6l4k2qok8rp..mW4,i1AVH3hjxi0tPcMNvOHN1aU3lRq.G2.Q8EI8
 GFamRq.98Hg,KIbg,9WU2dVpBUgh7in4q...Ud.MHT9N9naCrn0GIO3q4gdjVnlm.HtCI6.j0.
 CrnY6,dJHPNCbJ3iYBgohgcoig2YKBBsO9PNVfFZPMPntam4a.N0cHq.22.kasC...M8.0JtyK
 sqotSKEW0.0JtyaZVZd9PON......2emhgahgmhgiRgZ3Y2xdBk2S3...ZONbPOpHc8rmOKEGo
 b0mqCrnuGnaKwKKm0GR6JZWBk2mbhRCp,.cFTvM2emhga,c9FvPdfFTvMfHEe1..e1Z1.bOOp1
 .c9j96pNDSpR0mqC5F96pVKV6,W0A,98H.uYBM098HU3p7g600.g7i1PM0V0.qKR0maUd2Y1xh
 kBj4JijhBFlrKLtCqmeHECJuy4bf9b8R8bdY39OHV8JnuCPM1P..MMp761uMdPOTnIYcjRbBA,
 h019PNnlmGECroebgkr.sQpVClXsCqqtI5P0aEVK2kkm40GRsG.18PNXVVcA3MGBmqKaiAggZh
 j765lkmKqEeW2M0PPNu0ERMMN1rN1ak2qorktIcmxhVZgXBgnZicghZhhg2YhRCHtCa.VHtumk
 mKqMM66.Q56G9PMV1Qid,.UdM1MGohj,UUQ2VPMZf959P.G30Gs4Kt.UuEryKn.kWuIW.sQHXU
 QYU2C2hZBAbPO6JF0..e1bPOpX3p7U2,gek,0rk8rIq.sCsI9fQh1YcjZdVZiZJicAgg2YHhgm
 ,YedRgfRicAZUQ3KKt.8rmwBf9Rk4akW667uPrl4a..Q827IZvgV7cJcRp76kR0mkCKua4p761
 uMkR0GmeHEGorC49XnpZ2tMUvM030EbKofWGvamR0Gvu0H1,dCo827EI.7966FTvMUn7NHfQRd
 H9vRFdRN76j89,dRR7OUd.hOO9ntwdkhA1ORl98799,d6FON1HEmokarrKLu8mIqk2UH3BUvgV
 B..S21eP5nrIZU2ZVZgmJ5H0UDheI3YV,eHE4IdUD,AZvEV.Q811.FtIR,82Y319NZ96P76EVU
 DVdYZUAgi,HtCg6w6.iXBEd.sIMERvMFXe.e1.H,30UcFVwBWmdu0.mWVFE6BHN8g6Q8A6kRUG
 ,kYuqoGrRqk2aU,lkC4I5C4QbBcE.SomGLY.sHsCcHMP9PPHtC,NP9PPR,2224PM0CJuy4bnYu
 qoGLWyqq4qouKIqqmqqIg,HcHMM59RM8r76bON.GYA,QgoVg2YHhA.RvPjP8PM09eHAdiBBrl4
 8oWS2,NGRPOqkWuIWYcZ7G4aH3CRN13QwdONlnVyKr.c9bGmCIu8LqGomCrl0ks,.ELCoru4U2
 hgn7.CorMMHfP9fQu0IC...Qii..70,cw7U.2.YW.6.,.H.0..4E,x,,E.0.1X.w.,6.n0,6.C
 6E..WE.2Uz6.0E.cUZ52..676.16.6.665hK0E.0E.Kyz4Uvq84E.M66.,U0O10.,..u,2..4I
 taqkmaUbl,.,6Y1.0.UywPunjdL3wKuH4iHT8ssHor.sET1.UM2U.6..U6U..F.,6EruQ0uGCO
 .0IzKU.pj36.vSP0qHrd..We,...
 --- end of encoding ---


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 27 Ноябрь, 2016 03:45 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Код:
PROCEDURE Mark (this: Block);
....
   IF (flag >= 2) & (actual < this.last) & (offset < -4) THEN   (* next array element *)
....
                  S.GET(actual + offset, son);
                  IF son # NIL THEN
                     DEC(S.VAL(INTEGER, son), blockDataOffs);
...


Здесь вверху -4 так и должно остаться -4.

Mark - единственная непонятная мне лично в Kernel до конца из-за переоптимизации процедура.
Там рекурсия, реализованная через циклы (при этом массива для хранения стека пути по ссылкам они не используют).
Вот это -4 мне непонятно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 27 Ноябрь, 2016 14:55 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 563
Откуда: Казань
В книге Вирта "Compiler Construction" хорошо описан алгоритм как проходить по дереву не используя стек, а "вращая" указатели.
Также вы можете посмотреть реализацию в сборщике мусора Memory.ob7, который идет в примерах с моим компилятором.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 28 Ноябрь, 2016 13:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Спасибо!
Я пытался найти в Проекте Оберон, а там просто указано, что "ядро написано на ассемблере".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 28 Ноябрь, 2016 16:53 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8785
Откуда: Россия, Орёл
Хм, и что-то я не нашёл вообще информации по сборке мусора в этой книге.
Может быть, речь о самом последнем издании?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 28 Ноябрь, 2016 17:39 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 563
Откуда: Казань
Да, извиняюсь, не в "Compiler Construction" оказывается, а в "Project Oberon" раздел 8.2 (раньше был раздел 8.3): https://www.inf.ethz.ch/personal/wirth/ProjectOberon/PO.System.pdf


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 04 Февраль, 2017 20:19 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1155
Откуда: Tel-Aviv
Илья Ермаков писал(а):
Что-то я ступил с "магической константой" 19. Это просто 4 + 15, где 15 = 16-1.
4 - стандартное смещение данных в блоке, а 15 добавляется для округления в большую сторону до 16 через DIV 16 MOD 16.

С учётом этого выше const19 выбрасывается и заменяется на blockDataOffs + 15.

Поздно заметил эту тему. Жаль.
Как-то я уже интересовался данными магическими цифрами и пользователь maliya разъяснил некоторые из них. После этого я решил внести эти константы в код в экспериментальной ветке kernel-refactoring:
https://github.com/romiras/BlackBox-Com ... 59ec9e0e20
Код не претендует на правильность, это лишь гипотеза.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2017, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB