by Martin von Gagern
https://bugs.gentoo.org/show_bug.cgi?id=384875
http://thread.gmane.org/gmane.comp.tex.luatex/2630

--- luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc	
+++ luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc	
@@ -89,7 +89,6 @@ new_poppler_userdata(AnnotBorder);
 new_poppler_userdata(Annots);
 new_poppler_userdata(Array);
 new_poppler_userdata(Catalog);
-new_poppler_userdata(EmbFile);
 new_poppler_userdata(Dict);
 //new_poppler_userdata(GooString);
 new_poppler_userdata(LinkDest);
@@ -393,7 +392,7 @@ static int m_Annot__gc(lua_State * L)
     printf("\n===== Annot GC ===== uin=<%p>\n", uin);
 #endif
     if (uin->atype == ALLOC_LEPDF)
-        delete(Annot *) uin->d;
+        ((Annot *) uin->d)->decRefCnt();
     return 0;
 }
 
@@ -408,34 +407,6 @@ static const struct luaL_Reg Annot_m[] =
 };
 
 //**********************************************************************
-// AnnotBorderStyle
-
-m_poppler_get_DOUBLE(AnnotBorderStyle, getWidth);
-
-m_poppler__tostring(AnnotBorderStyle);
-
-static int m_Annots__gc(lua_State * L)
-{
-    udstruct *uin;
-    uin = (udstruct *) luaL_checkudata(L, 1, M_Annots);
-    if (uin->pd != NULL && uin->pd->pc != uin->pc)
-        pdfdoc_changed_error(L);
-#ifdef DEBUG
-    printf("\n===== Annots GC ===== uin=<%p>\n", uin);
-#endif
-    if (uin->atype == ALLOC_LEPDF)
-        delete(Annots *) uin->d;
-    return 0;
-}
-
-static const struct luaL_Reg AnnotBorderStyle_m[] = {
-    {"getWidth", m_AnnotBorderStyle_getWidth},
-    {"__tostring", m_AnnotBorderStyle__tostring},
-    {"__gc", m_Annots__gc},
-    {NULL, NULL}                // sentinel
-};
-
-//**********************************************************************
 // Annots
 
 m_poppler_get_INT(Annots, getNumAnnots);
@@ -683,31 +654,6 @@ static int m_Catalog_findDest(lua_State
 
 m_poppler_get_poppler(Catalog, Object, getDests);
 m_poppler_get_INT(Catalog, numEmbeddedFiles);
-
-static int m_Catalog_embeddedFile(lua_State * L)
-{
-    EmbFile *ef;
-    int i, len;
-    udstruct *uin, *uout;
-    uin = (udstruct *) luaL_checkudata(L, 1, M_Catalog);
-    if (uin->pd != NULL && uin->pd->pc != uin->pc)
-        pdfdoc_changed_error(L);
-    i = luaL_checkint(L, 2);
-    len = ((Catalog *) uin->d)->numEmbeddedFiles();
-    if (i > 0 && i <= len) {
-        ef = ((Catalog *) uin->d)->embeddedFile(i - 1);
-        if (ef != NULL) {
-            uout = new_EmbFile_userdata(L);
-            uout->d = ef;
-            uout->pc = uin->pc;
-            uout->pd = uin->pd;
-        } else
-            lua_pushnil(L);
-    } else
-        lua_pushnil(L);
-    return 1;
-}
-
 m_poppler_get_INT(Catalog, numJS);
 
 static int m_Catalog_getJS(lua_State * L)
@@ -749,7 +695,6 @@ static const struct luaL_Reg Catalog_m[]
     {"findDest", m_Catalog_findDest},
     {"getDests", m_Catalog_getDests},
     {"numEmbeddedFiles", m_Catalog_numEmbeddedFiles},
-    {"embeddedFile", m_Catalog_embeddedFile},
     {"numJS", m_Catalog_numJS},
     {"getJS", m_Catalog_getJS},
     {"getOutline", m_Catalog_getOutline},
@@ -759,49 +704,6 @@ static const struct luaL_Reg Catalog_m[]
 };
 
 //**********************************************************************
-// EmbFile
-
-m_poppler_get_GOOSTRING(EmbFile, name);
-m_poppler_get_GOOSTRING(EmbFile, description);
-m_poppler_get_INT(EmbFile, size);
-m_poppler_get_GOOSTRING(EmbFile, modDate);
-m_poppler_get_GOOSTRING(EmbFile, createDate);
-m_poppler_get_GOOSTRING(EmbFile, checksum);
-m_poppler_get_GOOSTRING(EmbFile, mimeType);
-
-static int m_EmbFile_streamObject(lua_State * L)
-{
-    udstruct *uin, *uout;
-    uin = (udstruct *) luaL_checkudata(L, 1, M_EmbFile);
-    if (uin->pd != NULL && uin->pd->pc != uin->pc)
-        pdfdoc_changed_error(L);
-    uout = new_Object_userdata(L);
-    uout->d = new Object();     // automatic init to type "none"
-    ((EmbFile *) uin->d)->streamObject().copy((Object *) uout->d);
-    uout->pc = uin->pc;
-    uout->pd = uin->pd;
-    return 1;
-}
-
-m_poppler_get_BOOL(EmbFile, isOk);
-
-m_poppler__tostring(EmbFile);
-
-static const struct luaL_Reg EmbFile_m[] = {
-    {"name", m_EmbFile_name},
-    {"description", m_EmbFile_description},
-    {"size", m_EmbFile_size},
-    {"modDate", m_EmbFile_modDate},
-    {"createDate", m_EmbFile_createDate},
-    {"checksum", m_EmbFile_checksum},
-    {"mimeType", m_EmbFile_mimeType},
-    {"streamObject", m_EmbFile_streamObject},
-    {"isOk", m_EmbFile_isOk},
-    {"__tostring", m_EmbFile__tostring},
-    {NULL, NULL}                // sentinel
-};
-
-//**********************************************************************
 // Dict
 
 static int m_Dict_incRef(lua_State * L)
@@ -2683,11 +2585,9 @@ int luaopen_epdf(lua_State * L)
 {
     register_meta(Annot);
     // TODO register_meta(AnnotBorder);
-    register_meta(AnnotBorderStyle);
     register_meta(Annots);
     register_meta(Array);
     register_meta(Catalog);
-    register_meta(EmbFile);
     register_meta(Dict);
     register_meta(GooString);
     register_meta(LinkDest);
