のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

nUnrefFamily(mNativePtr)

     52     @Override
     53     protected void finalize() throws Throwable {
     54         try {
     55             nUnrefFamily(mNativePtr);
     56         } finally {
     57             super.finalize();
     58         }
     59     }
     45 static void FontFamily_unref(JNIEnv* env, jobject clazz, jlong familyPtr) {
     46     FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr);
     47     fontFamily->Unref();
     48 }
reinterpret_castは、愚直なキャストである。
reinterpret_castは、値を保ったまま、型情報だけ変えることのできるキャストである。
だから、int *からfloat *とか、some_class *からother_class *などといった、
お互いに派生関係になく、ユーザー定義の型変換関数もない型のポインターやリファレンスにも変換できる。
これは、変換するというより、型だけ変えるというべきである。値はそのまま保持される。