Re: IDL5.2 and "corrupted descriptors" [message #13930] |
Mon, 28 December 1998 00:00 |
rpina
Messages: 6 Registered: December 1997
|
Junior Member |
|
|
Mark Rivers wrote:
> In article <3687D882.6CAACF1@astro.ufl.edu>, "Robert K. Pina" <rpina@astro.ufl.edu> writes:
>> Hi,
>>
>> I have written some widget tools which I have been using with no
>> problems under IDL5.1 and 5.0 (and earlier) on a Windows NT 4.0 x86
>> platform. However, under IDL 5.2, I occassionally get the following
>> error message:
>>
>> %Array has a corrupted descriptor: "name"
>>
>> where "name" is the actual name of the array. There is no help
>> pertaining to "corrupted descriptors" in the documentation. I have been
>> unsuccessful in determining the cause of the error mesage. I kept my
>> IDL5.1 installation on the same host machine and the code runs with no
>> problems under 5.1. Any suggestions?
>
> Do your programs use "call_external" at all? That message typically happens
> when a call_external routine messes things with memory.
>
> Mark Rivers
Hi Mark,
No, the function which is producing the error does not use call_external. However, since you
mention something messing with memory, the array which is passed to this function is
manipulated using pointers in the calling program. Basically, the calling program is passed an
input data array for which I create a pointer:
pdata = ptr_new(data)
where "data" is the input data array. After doing various things, I call the function (which
produces the error) as
x = bad_function(*pdata, /misc_keywords)
I have also tried making a copy
y = *pdata
and then calling
x = bad_function(y,/misc_keywords)
but I get the same error. If I do something like
x = bad_function( randomn(seed,100),/misc_keywords)
it does not produce the error. So, you are right that it has something to do with memory
manipulation, in this case through the use of pointers. What I don't understand is why the
function worked with no problems under pre-5.2 versions.
Thanks for your input.
Robert
--
_______________________________________
_______________________________________
Dr. Robert K. Pina
Assistant Professor
Department of Astronomy
University of Florida
_______________________________________
Mailing Address:
211 BSSC / PO Box 112055
University of Florida
Gainesville, FL 32611-2055
Contact Info:
352-392-2054 (office)
352-846-1645 (laboratory)
352-392-5089 (fax)
rpina@astro.ufl.edu
|
|
|
Re: IDL5.2 and "corrupted descriptors" [message #13931 is a reply to message #13930] |
Mon, 28 December 1998 00:00  |
rpina
Messages: 6 Registered: December 1997
|
Junior Member |
|
|
Mark Rivers wrote:
> In article <3687D882.6CAACF1@astro.ufl.edu>, "Robert K. Pina" <rpina@astro.ufl.edu> writes:
>> Hi,
>>
>> I have written some widget tools which I have been using with no
>> problems under IDL5.1 and 5.0 (and earlier) on a Windows NT 4.0 x86
>> platform. However, under IDL 5.2, I occassionally get the following
>> error message:
>>
>> %Array has a corrupted descriptor: "name"
>>
>> where "name" is the actual name of the array. There is no help
>> pertaining to "corrupted descriptors" in the documentation. I have been
>> unsuccessful in determining the cause of the error mesage. I kept my
>> IDL5.1 installation on the same host machine and the code runs with no
>> problems under 5.1. Any suggestions?
>
> Do your programs use "call_external" at all? That message typically happens
> when a call_external routine messes things with memory.
>
> Mark Rivers
Hi Mark,
No, the function which is producing the error does not use call_external. However, since you
mention something messing with memory, the array which is passed to this function is
manipulated using pointers in the calling program. Basically, the calling program is passed an
input data array for which I create a pointer:
pdata = ptr_new(data)
where "data" is the input data array. After doing various things, I call the function (which
produces the error) as
x = bad_function(*pdata, /misc_keywords)
I have also tried making a copy
y = *pdata
and then calling
x = bad_function(y,/misc_keywords)
but I get the same error. If I do something like
x = bad_function( randomn(seed,100),/misc_keywords)
it does not produce the error. So, you are right that it has something to do with memory
manipulation, in this case through the use of pointers. What I don't understand is why the
function worked with no problems under pre-5.2 versions.
Thanks for your input.
Robert
--
_______________________________________
_______________________________________
Dr. Robert K. Pina
Assistant Professor
Department of Astronomy
University of Florida
_______________________________________
Mailing Address:
211 BSSC / PO Box 112055
University of Florida
Gainesville, FL 32611-2055
Contact Info:
352-392-2054 (office)
352-846-1645 (laboratory)
352-392-5089 (fax)
rpina@astro.ufl.edu
|
|
|
Re: IDL5.2 and "corrupted descriptors" [message #13932 is a reply to message #13930] |
Mon, 28 December 1998 00:00  |
rivers
Messages: 228 Registered: March 1991
|
Senior Member |
|
|
In article <3687D882.6CAACF1@astro.ufl.edu>, "Robert K. Pina" <rpina@astro.ufl.edu> writes:
> Hi,
>
> I have written some widget tools which I have been using with no
> problems under IDL5.1 and 5.0 (and earlier) on a Windows NT 4.0 x86
> platform. However, under IDL 5.2, I occassionally get the following
> error message:
>
> %Array has a corrupted descriptor: "name"
>
> where "name" is the actual name of the array. There is no help
> pertaining to "corrupted descriptors" in the documentation. I have been
> unsuccessful in determining the cause of the error mesage. I kept my
> IDL5.1 installation on the same host machine and the code runs with no
> problems under 5.1. Any suggestions?
Do your programs use "call_external" at all? That message typically happens
when a call_external routine messes things with memory.
Mark Rivers
|
|
|