RE: clear or fill memory?

From: CFB Software <"CFB>
Date: Fri, 1 Oct 2004 16:26:09 +0930

----boundary-LibPST-iamunique-1463119870_-_-
Content-type: text/plain

> -----Original Message-----
> From: Hof, Philipp [mailto:p.hof{([at]})nowhere.xy
> Sent: Friday, 1 October 2004 12:50 PM
> To: 'blackbox{([at]})nowhere.xy
> Subject: clear or fill memory?
>
>
> Thanks for your replies:)
>
> Leading to my next question:
> Is there a built-in function to zero (or fill) everything in
> a RECORD? I could use RtlZeroMemory from the Windows API but
> rather would not.
>

I would always prefer to see record fields clearly and explicity
assigned, rather than having to

a) guess what the programmer intended (boolean values?)

b) wonder whether he had overlooked anything

If record fields are not pre-initialised, it is more likely that any
subsequent oversight will result in unexpected behaviour and give you an
early opportunity to identify what had been forgotten.

However, having said that, if you do have a compelling reason to preset
a record, noting that:

1. Global variables ARE initialised in Component Pascal

2. An entire record structure can be assigned in a single assignment
statement

it is possible to declare a global variable of the same record type and
then assign that to initialise an entire record in a procedure.

e.g.

TYPE
  SomeRecord = RECORD
    a: ARRAY 3 OF BOOLEAN;
    r: REAL;
    i: INTEGER;
    r1: AnotherRecordType;
    ...
    ...
  END;

VAR
  someRecordInitialised: SomeRecord;

PROCEDURE SomeProcedure;
VAR
  sr: SomeRecord;
BEGIN
  sr := someRecordInitialised;
  ...
  ...
  ...


The obvious risk with this technique, is that there is nothing to
prevent 'someRecordInitialised' from being accidentally modified.
    
Chris Burrows
CFB Software
http://www.cfbsoftware.com



--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-1463119870_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1c
cGFyDQo+IEZyb206IEhvZiwgUGhpbGlwcCBbbWFpbHRvOnAuaG9mQGVsZWMuY2FudGVyYnVyeS5h
Yy5uel1ccGFyDQo+IFNlbnQ6IEZyaWRheSwgMSBPY3RvYmVyIDIwMDQgMTI6NTAgUE1ccGFyDQo+
IFRvOiAnYmxhY2tib3hAb2Jlcm9uLmNoJ1xwYXINCj4gU3ViamVjdDogY2xlYXIgb3IgZmlsbCBt
ZW1vcnk/XHBhcg0KPiBccGFyDQo+IFxwYXINCj4gVGhhbmtzIGZvciB5b3VyIHJlcGxpZXM6KVxw
YXINCj4gXHBhcg0KPiBMZWFkaW5nIHRvIG15IG5leHQgcXVlc3Rpb246XHBhcg0KPiBJcyB0aGVy
ZSBhIGJ1aWx0LWluIGZ1bmN0aW9uIHRvIHplcm8gKG9yIGZpbGwpIGV2ZXJ5dGhpbmcgaW5ccGFy
DQo+IGEgUkVDT1JEPyBJIGNvdWxkIHVzZSBSdGxaZXJvTWVtb3J5IGZyb20gdGhlIFdpbmRvd3Mg
QVBJIGJ1dCBccGFyDQo+IHJhdGhlciB3b3VsZCBub3QuXHBhcg0KPiBccGFyDQpccGFyDQpJIHdv
dWxkIGFsd2F5cyBwcmVmZXIgdG8gc2VlIHJlY29yZCBmaWVsZHMgY2xlYXJseSBhbmQgZXhwbGlj
aXR5XHBhcg0KYXNzaWduZWQsIHJhdGhlciB0aGFuIGhhdmluZyB0byBccGFyDQpccGFyDQphKSBn
dWVzcyB3aGF0IHRoZSBwcm9ncmFtbWVyIGludGVuZGVkIChib29sZWFuIHZhbHVlcz8pXHBhcg0K
XHBhcg0KYikgd29uZGVyIHdoZXRoZXIgaGUgaGFkIG92ZXJsb29rZWQgYW55dGhpbmdccGFyDQpc
cGFyDQpJZiByZWNvcmQgZmllbGRzIGFyZSBub3QgcHJlLWluaXRpYWxpc2VkLCBpdCBpcyBtb3Jl
IGxpa2VseSB0aGF0IGFueVxwYXINCnN1YnNlcXVlbnQgb3ZlcnNpZ2h0IHdpbGwgcmVzdWx0IGlu
IHVuZXhwZWN0ZWQgYmVoYXZpb3VyIGFuZCBnaXZlIHlvdSBhblxwYXINCmVhcmx5IG9wcG9ydHVu
aXR5IHRvIGlkZW50aWZ5IHdoYXQgaGFkIGJlZW4gZm9yZ290dGVuLlxwYXINClxwYXINCkhvd2V2
ZXIsIGhhdmluZyBzYWlkIHRoYXQsIGlmIHlvdSBkbyBoYXZlIGEgY29tcGVsbGluZyByZWFzb24g
dG8gcHJlc2V0XHBhcg0KYSByZWNvcmQsIG5vdGluZyB0aGF0OlxwYXINClxwYXINCjEuIEdsb2Jh
bCB2YXJpYWJsZXMgQVJFIGluaXRpYWxpc2VkIGluIENvbXBvbmVudCBQYXNjYWxccGFyDQpccGFy
DQoyLiBBbiBlbnRpcmUgcmVjb3JkIHN0cnVjdHVyZSBjYW4gYmUgYXNzaWduZWQgaW4gYSBzaW5n
bGUgYXNzaWdubWVudFxwYXINCnN0YXRlbWVudFxwYXINClxwYXINCml0IGlzIHBvc3NpYmxlIHRv
IGRlY2xhcmUgYSBnbG9iYWwgdmFyaWFibGUgb2YgdGhlIHNhbWUgcmVjb3JkIHR5cGUgYW5kXHBh
cg0KdGhlbiBhc3NpZ24gdGhhdCB0byBpbml0aWFsaXNlIGFuIGVudGlyZSByZWNvcmQgaW4gYSBw
cm9jZWR1cmUuXHBhcg0KXHBhcg0KZS5nLlxwYXINClxwYXINClRZUEVccGFyDQogIFNvbWVSZWNv
cmQgPSBSRUNPUkRccGFyDQogICAgYTogQVJSQVkgMyBPRiBCT09MRUFOO1xwYXINCiAgICByOiBS
RUFMO1xwYXINCiAgICBpOiBJTlRFR0VSO1xwYXINCiAgICByMTogQW5vdGhlclJlY29yZFR5cGU7
XHBhcg0KICAgIC4uLlxwYXINCiAgICAuLi5ccGFyDQogIEVORDtccGFyDQpccGFyDQpWQVJccGFy
DQogIHNvbWVSZWNvcmRJbml0aWFsaXNlZDogU29tZVJlY29yZDtccGFyDQpccGFyDQpQUk9DRURV
UkUgU29tZVByb2NlZHVyZTtccGFyDQpWQVJccGFyDQogIHNyOiBTb21lUmVjb3JkO1xwYXINCkJF
R0lOXHBhcg0KICBzciA6PSBzb21lUmVjb3JkSW5pdGlhbGlzZWQ7XHBhcg0KICAuLi5ccGFyDQog
IC4uLlxwYXINCiAgLi4uXHBhcg0KXHBhcg0KXHBhcg0KVGhlIG9idmlvdXMgcmlzayB3aXRoIHRo
aXMgdGVjaG5pcXVlLCBpcyB0aGF0IHRoZXJlIGlzIG5vdGhpbmcgdG9ccGFyDQpwcmV2ZW50ICdz
b21lUmVjb3JkSW5pdGlhbGlzZWQnIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IG1vZGlmaWVkLlxw
YXINCiAgICBccGFyDQpDaHJpcyBCdXJyb3dzXHBhcg0KQ0ZCIFNvZnR3YXJlXHBhcg0KaHR0cDov
L3d3dy5jZmJzb2Z0d2FyZS5jb21ccGFyDQpccGFyDQpccGFyDQpccGFyDQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2NyaWJl
IGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdv
cmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5jaFxw
YXINClxwYXINClRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBpbnN0
cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdv
cmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHByb2Js
ZW0gcmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8gdGhl
IGxpc3Qgb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFy
DQpDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNob3Vs
ZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhl
IG1haWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29nbml6ZSB5
b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdp
dGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29tZSBy
ZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJl
IHN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBzcGFt
LiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBzb21l
IGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheX19AMdSAEDHUg==


----boundary-LibPST-iamunique-1463119870_-_---
Received on Fri Oct 01 2004 - 08:56:09 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:35 UTC