ext/rapngasm/rapngasm.cpp in rapngasm-3.1.4 vs ext/rapngasm/rapngasm.cpp in rapngasm-3.1.5.pre

- old
+ new

@@ -55,10 +55,20 @@ } return rgbaArray; } +template<> +const std::string& from_ruby< const std::string& > (Object o) +{ + static std::string tmp; + String str(o); + tmp.clear(); + tmp.append(str.c_str()); + return tmp; +} + //size_t APNGAsm::wrap_add_frame_rgb(Object pixels, unsigned int width, unsigned int height, Object trns_color = NULL, unsigned delayNum = DEFAULT_FRAME_NUMERATOR, unsigned delayDen = DEFAULT_FRAME_DENOMINATOR) { // return this.addFrame(from_ruby<rgb*>(pixels), width, height, from_ruby<rgb*>(trns_color), delayNum, delayDen); //} extern "C" @@ -79,11 +89,11 @@ .define_method("rows", &APNGFrame::rows, (Arg("rows") = NULL)) .define_method("save", &APNGFrame::save, (Arg("out_path"))); typedef size_t (APNGAsm::*add_frame_object)(const APNGFrame&); typedef size_t (APNGAsm::*add_frame_file)(const std::string&, unsigned, unsigned); - typedef size_t (APNGAsm::*add_frame_rgb)(rgb*, unsigned int, unsigned int, rgb*, unsigned, unsigned); - typedef size_t (APNGAsm::*add_frame_rgba)(rgba*, unsigned int, unsigned int, unsigned, unsigned); + typedef size_t (APNGAsm::*add_frame_rgb)(rgb*, unsigned int, unsigned int, rgb*, unsigned, unsigned); + typedef size_t (APNGAsm::*add_frame_rgba)(rgba*, unsigned int, unsigned int, unsigned, unsigned); define_class<APNGAsm>("APNGAsm") .define_constructor(Constructor<APNGAsm>()) .define_method("assemble", &APNGAsm::assemble) .define_method("disassemble", &APNGAsm::disassemble) .define_method("load_animation_spec", &APNGAsm::loadAnimationSpec)