2009-07-23
CFStringRefをSVに変換
追記: id:tokuhirom先生に添削してもらった。
- malloc使うべからず -> NewXX()系でアロケート、SafeFree()で解放すべし(そういえばid:hirose31さんも言ってた)
- newSVpvの第二引数(STRLEN)は明示的に指定すべし -> 0で自動計算は\0 終端前提
SV * getString(CFStringRef var) {
char *buf;
SV *sv;
CFIndex len = CFStringGetLength(val);
CFIndex max = CFStringGetMaximumSizeForEncoding(len, kCFStringEncodingUTF8);
buf = Newxz(max + 1);
CFStringGetCString(val, buf, max + 1, kCFStringEncodingUTF8);
CFRelease(val);
sv = newSVpv(buf, max);
SafeFree(buf);
return sv;
}
トラックバック - http://d.hatena.ne.jp/hide-K/20090723/1248328262
リンク元
- 46 http://perl-mongers.org/2008/05/moose.html
- 46 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&num=100&q=perl+DBI+insert+into+sqlite&btnG=検索&lr=lang_ja
- 25 http://www.google.co.jp/search?hl=ja&q=perl+フレームワーク&sourceid=navclient-ff&rlz=1B3GGGL_jaJP335JP336&ie=UTF-8
- 23 http://www.google.co.jp/search?q=perl+フレームワーク+比較&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP277JP277&aq=t
- 16 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=ADBF,ADBF:2009-21,ADBF:ja&q=トランザクション
- 15 http://d.hatena.ne.jp/
- 13 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/hide-K/20081006/1223273646
- 13 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=cXE&q=perl+フレームワーク+比較&revid=1903228016&ei=rVJpSo-dGdaBkQXkh5WiCw&sa=X&oi=revisions_inli
- 13 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=Perl+軽量+フレームワーク&num=50
- 12 http://www.google.co.jp/search?q=sqlite+トランザクション&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a


