1. 程式人生 > >xLua 2.1.13 釋出,騰訊開源的手遊熱更新解決方案

xLua 2.1.13 釋出,騰訊開源的手遊熱更新解決方案

  

新增特性

  1. 新增AdaptByDelegate注入模式;

  2. 新增xlua.get_generic_method,用於呼叫泛型函式;

  3. 支援類似CS.System.Collections.Generic.List(CS.System.Int32)的泛型寫法;

  4. 注入新選項:忽略編譯器自動生成程式碼,以及不生成base代理;

  5. 針對lua程式設計以及熱補丁,均新增直接可用的自動化配置樣例;

  6. 新增luajit的gc64支援;

  7. 加入相容位元組碼(一份位元組碼支援32位和64位系統)的支援;

  8. 內建新lua記憶體洩漏檢測工具;

  9. delegate橋接動態例項化:delegate是4個引數以內,引數均引用型別,無返回值或者返回引用型別,不用配置CSharpCallLua也能呼叫lua函式;

  10. 提供util.print_func_ref_by_csharp函式,用於檢視當前被C#引用的lua函式;

  11. 支援無CS全域性變數的工作方式;

變更

  1. 虛擬機器升級:lua5.3.4 -> lua5.3.5,luajit2.1b2 -> luajit2.1b3;

  2. delegate bridge程式碼段佔用優化;

  3. 改為PostProcessBuild事件檢查是否生成程式碼;

  4. 適配xcode 10:osx平臺不再支援32bit版本構建;

  5. 名字空間、類名拼寫錯誤時,對靜態成員的設定會報錯;

  6. 防止CS全域性table被刪除導致xlua工作異常;

  7. Windows下構建lib,若使用vs 2015引數執行cmake失敗,則繼續嘗試使用vs 2017;

  8. 編輯器下不生成程式碼時,也檢查Blacklist,維持和執行時一致;

bug修復

  1. 泛型的陣列生成程式碼報錯;

  2. 防止對TypeExtensions配置了LuaCallCSharp後,lua裡頭IsValueType之類的判斷永真;

  3. 生成程式碼過濾掉含指標的函式和欄位;

  4. 適應索引器屬性名不是Item的情況;

  5. 解決attribute初始化異常會導致生成程式碼,注入終止的問題;

  6. 精簡模式下空Enum生成程式碼錯誤;

  7. 通過把初始化函式分割成小函式,規避unity在android下執行大函式crash的bug;

  8. Assignable處理obj為null情況;

  9. 內嵌類不Obsolete,但外層類Obsolete的生成程式碼報錯

  10. 解決inline注入方式下,如果lua邏輯跑異常,看不到異常資訊的問題;

  11. 修復xlua.private_accessible訪問後,同名public的方法無法訪問的Bug;

  12. [Out]修飾的引數不應該生成out關鍵字;

  13. 通過反射查詢合適的介面卡時,有可能訪問到非介面卡函式;

  14. 精簡模式匯出程式碼無get_Item、set_Item;

  15. IntKey方式下不自動xlua.private_accessible的問題;

下載地址: