SAD部屋 - Ticket-17 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
! SAD is crashed by evaluating Show[]
:Priority:Normal:Priority:Low
:Reporter:Akio Morita
:Status:Assigned
:Assigned to:Akio Morita
:Version:2195
:Milestone:2877
:Created:2008-07-15
!! Description
Show[]に、ListPlot[]等の結果を渡す際に誤ってシンボルを渡すと
segmentation faultする。ランタイムエラーでは有るが、
無効アドレス参照が発生するのは欠陥である。
例
In[1]:= Clear[g0,g1]
In[1]:= g0 = ListPlot[Range[10]]
In[2]:= Show[g0,g1]
*Clear[g]; Show[g]では SEGVは発生しない。
*Clear[g0,g1]; Show[g0,g1]は、構文解析に失敗している?
In[1]:= Clear[g0,g1]; Show[g0,g1]
???General::index: Index 1 out of range in {}[[1,2]]
???General::wrongtype: Argument must be List, Rule, Symbol, String, Real in Override[{g0,g1},{}[[1,2]],{(PlotRange->Default), (PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}]
???General::index: Index 1 out of range in {}[[1,2]]
???General::wrongtype: Argument must be List, Rule, Symbol, String, Real in Override[{g0,g1},{}[[1,2]],{(PlotRange->Default), (PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}]
???General::index: Index 1 out of range in {}[[1,2]]
???General::wrongtype: Argument must be List, Rule, Symbol, String, Real in Override[{g0,g1},{}[[1,2]],{(PlotRange->Default), (PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}]
???General::wrongtype: Argument must be Rule or List of rules in ({PlotRange,PlotRegion}/.Override[{g0,g1},{}[[1,2]], {(PlotRange->Default),(PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}])
???General::index: Index 1 out of range in {}[[1]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[1]]]
???General::index: Index 2 out of range in {}[[2]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Max[{}[[2]]]
???General::index: Index 3 out of range in {}[[3]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[3]]]
???General::index: Index 4 out of range in {}[[4]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Max[{}[[4]]]
???General::index: Index 1 out of range in {}[[1]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[1]]]
???General::index: Index 2 out of range in {}[[2]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Max[{}[[2]]]
???General::index: Index 3 out of range in {}[[3]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[3]]]
???General::index: Index 4 out of range in {}[[4]]
???General::wrongtype: Further output of this message will be suppressed.
???General::index: Further output of this message will be suppressed.
???General::abort: Aborted:
Clear[g0,g1]; Show[g0,g1]
^
...]
!! Attachement files
{{attach_map('Ticket-17')}}
{{attach_form('','')}}
!! Changelog
!!!Akio Morita (2009-07-08 (水) 13:20:27)
Show1\$[ini_, rect_, g__] @ Packages/ListPlot.nにて、
{gl,df,init,opt}=SwitchCases[Flatten[{g}],
{_Graphics,(Rule|RuleDelayed)[DisplayFunction,_],
(Rule|RuleDelayed)[Initialize,_],
_}]
により、optに束縛されるリストにRule/RuleDelayed以外のS式が
含まれるのが、動作不良のトリガーとなっている。
Segmentation Faultは、CanvasSymbolDirect[]の内部実装不良が原因と思われる
!!!Akio Morita (2009-07-08 (水) 13:38:34)
Revision. 2877にて、Show1\$[] @ Packages/ListPlot.nを修正
CanvasSymbolDirect[]は、調査中
!!!Akio Morita (2009-07-13 (月) 11:29:33)
CVS MAIN trunk Packages/ListPlot.n@1.152へBackport
!!!Akio Morita (2009-07-13 (月) 11:31:48)
CanvasSymbolDirect[]でのSegmentation Faultは、リスト構造へのアクセス前に、型チェックを行っていないため発生している
Canvasの内部実装用支援関数なので、修正自体の緊急度は低い?
{{its_edit_ticket_form}}
:Reporter:Akio Morita
:Status:Assigned
:Assigned to:Akio Morita
:Version:2195
:Milestone:2877
:Created:2008-07-15
!! Description
Show[]に、ListPlot[]等の結果を渡す際に誤ってシンボルを渡すと
segmentation faultする。ランタイムエラーでは有るが、
無効アドレス参照が発生するのは欠陥である。
例
In[1]:= Clear[g0,g1]
In[1]:= g0 = ListPlot[Range[10]]
In[2]:= Show[g0,g1]
*Clear[g]; Show[g]では SEGVは発生しない。
*Clear[g0,g1]; Show[g0,g1]は、構文解析に失敗している?
In[1]:= Clear[g0,g1]; Show[g0,g1]
???General::index: Index 1 out of range in {}[[1,2]]
???General::wrongtype: Argument must be List, Rule, Symbol, String, Real in Override[{g0,g1},{}[[1,2]],{(PlotRange->Default), (PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}]
???General::index: Index 1 out of range in {}[[1,2]]
???General::wrongtype: Argument must be List, Rule, Symbol, String, Real in Override[{g0,g1},{}[[1,2]],{(PlotRange->Default), (PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}]
???General::index: Index 1 out of range in {}[[1,2]]
???General::wrongtype: Argument must be List, Rule, Symbol, String, Real in Override[{g0,g1},{}[[1,2]],{(PlotRange->Default), (PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}]
???General::wrongtype: Argument must be Rule or List of rules in ({PlotRange,PlotRegion}/.Override[{g0,g1},{}[[1,2]], {(PlotRange->Default),(PlotRegion->{ {0,1},{0,1} }),(DataRange->{ {1E38,-1E38},{1E38,-1E38} })}])
???General::index: Index 1 out of range in {}[[1]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[1]]]
???General::index: Index 2 out of range in {}[[2]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Max[{}[[2]]]
???General::index: Index 3 out of range in {}[[3]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[3]]]
???General::index: Index 4 out of range in {}[[4]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Max[{}[[4]]]
???General::index: Index 1 out of range in {}[[1]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[1]]]
???General::index: Index 2 out of range in {}[[2]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Max[{}[[2]]]
???General::index: Index 3 out of range in {}[[3]]
???General::wrongtype: Argument must be Real, Complex, or List of them in Min[{}[[3]]]
???General::index: Index 4 out of range in {}[[4]]
???General::wrongtype: Further output of this message will be suppressed.
???General::index: Further output of this message will be suppressed.
???General::abort: Aborted:
Clear[g0,g1]; Show[g0,g1]
^
...]
!! Attachement files
{{attach_map('Ticket-17')}}
{{attach_form('','')}}
!! Changelog
!!!Akio Morita (2009-07-08 (水) 13:20:27)
Show1\$[ini_, rect_, g__] @ Packages/ListPlot.nにて、
{gl,df,init,opt}=SwitchCases[Flatten[{g}],
{_Graphics,(Rule|RuleDelayed)[DisplayFunction,_],
(Rule|RuleDelayed)[Initialize,_],
_}]
により、optに束縛されるリストにRule/RuleDelayed以外のS式が
含まれるのが、動作不良のトリガーとなっている。
Segmentation Faultは、CanvasSymbolDirect[]の内部実装不良が原因と思われる
!!!Akio Morita (2009-07-08 (水) 13:38:34)
Revision. 2877にて、Show1\$[] @ Packages/ListPlot.nを修正
CanvasSymbolDirect[]は、調査中
!!!Akio Morita (2009-07-13 (月) 11:29:33)
CVS MAIN trunk Packages/ListPlot.n@1.152へBackport
!!!Akio Morita (2009-07-13 (月) 11:31:48)
CanvasSymbolDirect[]でのSegmentation Faultは、リスト構造へのアクセス前に、型チェックを行っていないため発生している
Canvasの内部実装用支援関数なので、修正自体の緊急度は低い?
{{its_edit_ticket_form}}