|
>> So getting back to the original premise: copying pointers to a string then back to pointers. It appears that it would work if at all points you could guarantee that the pointers would always be intact and always on a 16-byte boundary. I think that is probably a good summary. If you think about it, it has to be able to do that or even a structure (DS, array, whatever) which consisted of nothing but pointers could never be moved from point a to point b other than by moving a pointer at a time. The tag bit gets turned off when (as you have noted) any attempt is made to mess with anything less than the whole pointer. I can recall architecture discussions when pointers were being added to COBOL and considered for RPG. I believe the result was that the compilers actually check to determine if any structure being moved includes a (whole) pointer and if so flags it so that a "move bytes with pointer" is done rather than a "move bytes". The net of it is that the architecture protects you from people messing with pointers (by defining them as char fields or ints) while still allowing structures containing pointers to be manipulated safely. +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.