[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: memory leak in regexprep ? (windows/3.7.2+/VS)
From: |
Tatsuro MATSUOKA |
Subject: |
Re: memory leak in regexprep ? (windows/3.7.2+/VS) |
Date: |
Wed, 27 Mar 2013 11:03:57 +0900 (JST) |
--- On Tue, 2013/3/26, Christoph Ellenberger wrote:
> I am experiencing some strange behavior and wanted to check if it is a bug
> or me....
> It happens when I try to read in and manipulating some ascii data files. It
> only happens with the VS version of octave. (tested with several gcc versions
> on windows and didn't showed up).
> Ok here is some example code to reproduce:
> First generating an ascii file:
> s="0123456789";
> for i=1:21, s=cstrcat(s,s);,endfor
> save TestData.dat s
>
> Then readin and manipulate:
> fid = fopen("TestData.dat","r");
> s = fscanf(fid,'%c');
> fclose(fid);
> s = regexprep(s,'0','2');
>
> Clear all and repeat:
> clear all
>
> fid = fopen("TestData.dat","r");
> s = fscanf(fid,'%c');
> fclose(fid);
> s = regexprep(s,'0','2');
>
> Depending on datasize and how many replacement were performed it either fails
> on the new readin or regexprep with a: "error: out of memory or dimension too
> large for Octave's index type"
> Any help is appreciated
> Christoph
I have tested on octave-3.6.2 VS, 3.6.2 MinGW, 3.7.2+ VS and 3.6.2 cygwin
(win 7 64 bit Home premium, 4GB memory)
1. octave-3.6.2 VS and 3.6.2 MinGW*****************************
>> fid = fopen("TestData.dat","r");
>> s = fscanf(fid,'%c');
warning: range error for conversion to character value
>> fclose(fid);
>> s = regexprep(s,'0','2');
>> clear all
>> fid = fopen("TestData.dat","r");
>> s = fscanf(fid,'%c');
error: memory exhausted or requested size too large for range of Octave's index
type -- trying to return to prompt
********************************************************************
2. octave-3.7.2+ VS*****************************
>> fid = fopen("TestData.dat","r");
>> s = fscanf(fid,'%c');
warning: range error for conversion to character value
>> fclose(fid);
>> s = regexprep(s,'0','2');
>> clear all
>> fid = fopen("TestData.dat","r");
>> s = fscanf(fid,'%c');
error: out of memory or dimension too large for Octave's index type
********************************************************************
3.Octave-3.6.2 Cygwin**********************************************
>> fid = fopen("TestData.dat","r");
>> s = fscanf(fid,'%c');
>> fclose(fid);
>> s = regexprep(s,'0','2');
>> clear all
>> fid = fopen("TestData.dat","r");
>> s = fscanf(fid,'%c');
>> fclose(fid);
>> s = regexprep(s,'0','2');
********************************************************************
For me, both VS and MinGW version caused problem. Cygwin version seemed to work
correctly.
Regards
Tatsuro
- memory leak in regexprep ? (windows/3.7.2+/VS), Christoph Ellenberger, 2013/03/26
- Re: memory leak in regexprep ? (windows/3.7.2+/VS),
Tatsuro MATSUOKA <=
- Re: memory leak in regexprep ? (windows/3.7.2+/VS), Tatsuro MATSUOKA, 2013/03/27
- Re: memory leak in regexprep ? (windows/3.7.2+/VS), Tatsuro MATSUOKA, 2013/03/27
- Aw: Re: memory leak in regexprep ? (windows/3.7.2+/VS), Christoph Ellenberger, 2013/03/27
- Re: Aw: Re: memory leak in regexprep ? (windows/3.7.2+/VS), Tatsuro MATSUOKA, 2013/03/27
- Re: Aw: Re: memory leak in regexprep ? (windows/3.7.2+/VS), Sergei Steshenko, 2013/03/27
- Aw: Re: Re: memory leak in regexprep ? (windows/3.7.2+/VS), Christoph Ellenberger, 2013/03/28
- memory leak in regexprep ? (windows/3.7.2+/VS), Paryshaan, 2013/03/29