[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...

はじめまして。

12 messages 2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法 — "U.Nakamura" <usa@...> 2009/12/17

こんにちは、なかむら(う)です。

[ruby-list:46626] rcairo:はみ出しで例外

From: "5.5" <5.5@...>
Date: 2009-12-11 14:15:42 UTC
List: ruby-list #46626
5.5 です。

rcairo について,どこに書けばよいのか分からなかったので,こちらに
書きます。
rcairo で,PDFSurface に文字を書く際,一定量以上のはみだしがあると
NoMemoryError 例外が発生します。

再現コードは以下です:

-- NoMemoryError.rb ------
require 'rubygems'
gem 'cairo'
require 'cairo'

p Cairo::BINDINGS_VERSION, Cairo::BUILD_VERSION

surface=::Cairo::PDFSurface.new "result.pdf", 100, 100
context=::Cairo::Context.new surface
context.move_to 90, 50
context.show_text "foo bar baz foo bar baz "
surface.finish
--------------------------

以下のように表示されます。

--------------------------
[1, 8, 0, nil]
[1, 8, 0]
_cairo_win32_scaled_font_init_glyph_metrics:GetGlyphOutlineW: この操作を
正しく終了しました。
NoMemoryError.rb:11:in `finish': out of memory (NoMemoryError)
        from NoMemoryError.rb:11
--------------------------

描画文字列を少し短くすると正常に終了します。
ImageSurface の場合は正常に終了します。


環境は以下の通りです。

Windows XP
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]

rcairo は gem で入れた最新版です。

-- 
5.5@moji.gr.jp

In This Thread

Prev Next