为什么长 cfc 文件可以在 CF8 中使用,但不能在 CF9 中使用?出现“分支目标偏移量对于短期而言太大”错误

2023-12-03

我有一个相当长的 cfc 文件,大约 1800 行长,在 ColdFusion 8 中运行良好,但是在将我的开发系统升级到 ColdFusion 9 并进行一些测试后,我收到 cfc 的编译错误,并且消息显示“分支目标偏移太大而短”。我修改了该文件以消除一些未使用的功能,并合并了一个文件以使其更短,这解决了问题以使其正常工作。但是,为什么当我升级到 CF9 后它就死了?还有其他人在以前或当前版本的 ColdFusion 中遇到过此问题吗?除了修改cfc文件例如升级jvm之外还有其他解决办法吗?

EDIT如果您能回答我的问题,那就太好了!发布该内容,但不要浪费时间告诉我一些我已经知道的事情。如果您要发表回复,请仔细阅读问题,只有在您知道答案的情况下才回答。不要进行谷歌搜索并发布我已经知道并用来使代码正常工作的废话。问题是,为什么在CF8中可以用,而在CF9中却不行呢?除了我所做的之外还有其他解决方案吗?


正如您所知,这是 JVM 固有的问题,CF9 可能向组件添加了更多固有函数,如果这些方法都是通过一个巨大的 switch 语句引用的,并使用短字符作为偏移量,那么我们的偏移指针空间就会更少与每个后续版本一起使用。从 CF7 迁移到 CF8 的人也遇到了同样的问题。

所以简短的回答是否定的。

您找到的大多数建议基本上都是告诉您将一个大方法拆分为一个较小的方法和几个辅助方法。我第一次遇到这个问题时,它对我拥有的大型 cfc 有效。但随着它变得越来越大,没有任何辅助函数可以修复它。最终它不得不被分成多个cfc。

PS:这家伙说删除交易有帮助(CF7),但没有人包装我的电话,所以我想这不是一个有保证的修复http://www.coldfusionmuse.com/index.cfm/2007/9/28/Branch.Target.Offset

Edit
看起来我之前的问题是一个不同的函数太大,将 CFC 拆分为多个 CFC 是错误的。此后,我将该问题方法拆分为更小的方法,并且能够将所有功能合并到一个 CFC 中。这看起来就是解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么长 cfc 文件可以在 CF8 中使用,但不能在 CF9 中使用?出现“分支目标偏移量对于短期而言太大”错误 的相关文章

随机推荐

  • Yii2 禁用供应商模块的资产

    我已经安装了 yii2 admin 模块 位于 vendor mdmsoft yii2 admin 但我不希望它加载自己的资源包 有什么办法可以禁用这个模块资源包吗 是的 这是可能的 甚至在官方文档中提到过here 一种方法是通过应用程序配
  • Zend Forms 模块包含路径

    我正在使用 Zend 1 8 4 并设置一个简单的表单测试 我的表单类位于 application forms SectorSearch php 中 类名称为
  • Vanilla JS:完全禁用网页中的“保存”功能

    假设我是一名初级维基百科用户 只想在编辑页面中尝试使用维基文本编辑器更改一些维基百科内容 但不以任何方式保存我的更改 甚至不是错误的 因此寻求一种方法来防止any通过普通 JavaScript 将功能保存在编辑页面中 如果我去一些编辑页面在
  • 在我的 Firefox 扩展中,onUninstalled 事件似乎没有触发

    Firefox 4 公开了一些事件来检测用户何时卸载扩展 我可以得到onUninstalling触发 当用户单击删除扩展时 但我无法让任何事情发生onUninstalled火灾 应该在重新启动后发生 Components utils imp
  • 共享内存:key和id有什么区别?

    调用时ipcs a 有什么区别key列和id column 这是一个示例输出ipcs命令 ipcs a Shared Memory Segments key shmid owner perms bytes nattch status 0x0
  • 将图表中的秒转换为 hh:mm:ss

    我有一个 MsSql 数据库 它计算两个日期之间的时间跨度 以秒为单位 效果很好 我随后在 C 中使用此列并将它们写入数组中 该数组是稍后图表的输入 到目前为止 效果很好 但我找不到一种方法以 hhh mm ss 等格式显示秒数 因为时间跨
  • 使用scrapy进行CPU密集型解析

    CONCURRENT ITEMS 部分位于http doc scrapy org en latest topics settings html concurrent items将其定义为 要处理的最大并发项目数 每个响应 项目处理器 也称为
  • 如何在centos7、Apache/2.4.6下用Python3.5.2编译mod_wsgi 4.5.3

    我尝试了 configure for mod wsgi 4 5 3 如下所示 configure with python opt Python352 bin 其中 opt Python352文件夹安装有python3 5 2 然而 在 Ce
  • 为 ASP.NET 设计异步任务库

    ASP NET 运行时适用于可以并行运行的短工作负载 我需要能够安排定期事件和后台任务 这些事件和后台任务可能会或可能不会运行更长的时间 鉴于上述情况 我有以下问题需要处理 AppDomain 可能会因更改 Web config bin A
  • 为什么Python没有静态变量?

    有一个询问如何在 python 中模拟静态变量的问题 此外 在网络上可以找到许多不同的解决方案来创建静态变量 虽然我还没有看到我喜欢的 为什么Python不支持方法中的静态变量 这是否被认为是非Pythonic的或者与Python的语法有关
  • 无锁多线程适合真正的线程专家

    我正在读一本answer that 乔恩 斯基特提出了一个问题 他在其中提到了这一点 就我而言 无锁多线程适用于真正的线程专家 而我不是其中之一 这不是我第一次听到这个 但我发现很少有人谈论如果你有兴趣学习如何编写无锁多线程代码 你实际上是
  • JavaScript 中的关键代码检查不适用于 IE

    我尝试编写一个函数来使用 JavaScript 检查关键代码 它在 Firefox 上运行良好 但在 IE 上则不然 有谁知道我的代码出了什么问题 请参阅下面的代码了解更多详细信息 function textCheck e var e wi
  • 重置对象而不调用复制构造函数?

    我有一个无法复制的对象 一个 NetGame 因为它里面有一个字符串流 我在我的班级中将其声明为 NetGame m game 稍后在代码中 我只想重置它 这不需要复制任何内容 void ServerTable setActive bool
  • R、mapply、ggplot:EXPR 必须是长度为 1 的向量

    我正在尝试使用 ggplot 和 gridExtra 绘制表的子集 但我遇到了以下错误 EXPR 必须是长度为 1 的向量 我可以想出任何办法 任何帮助都会有用的 这是我正在尝试执行的一个小示例 the table dt1 lt data
  • iOS 应用程序在手机上崩溃,但在模拟器上运行正常

    我有以下代码 var displayValue Double get println display text display text return NSNumberFormatter numberFromString display t
  • gdb重新设置断点时出错(无法访问内存)

    我试图让 gdb 在 pcbsd10 freebsd10 中设置断点 我已经使用调试符号编译了代码 这是 gdb 的输出 GNU gdb GDB 7 7 Copyright C 2014 Free Software Foundation I
  • ManipulationBoundaryFeedback 在 wpf 的网络浏览器中不起作用?

    我正在使用 ManipulationBoundaryFeedback 来避免窗口在触摸设备上被拖动 这对于所有其他控件都可以正常工作 除非网络浏览器有滚动条 有任何解决办法吗 您可以为整个系统关闭此行为 打开注册表并将 HKEY CURRE
  • RuntimeWarning:日志中遇到除零

    我正在使用 numpy log10 来计算概率值数组的对数 数组中有一些零 我试图使用它来解决它 result numpy where prob gt 0 0000000001 numpy log10 prob 10 然而 RuntimeW
  • UnboundLocalError:分配之前引用的局部变量 - 但它不是?全局/局部范围的问题

    所以我知道这个问题被问了很多 但我还没有找到任何与我身上发生的事情完全相符的东西 在我的程序 Python 3 7 1 中 启动时我想定义程序的安装位置 以及保存程序生成的文件的默认位置 稍后在程序中 我想再次显示这些变量 并为用户提供将默
  • 为什么长 cfc 文件可以在 CF8 中使用,但不能在 CF9 中使用?出现“分支目标偏移量对于短期而言太大”错误

    我有一个相当长的 cfc 文件 大约 1800 行长 在 ColdFusion 8 中运行良好 但是在将我的开发系统升级到 ColdFusion 9 并进行一些测试后 我收到 cfc 的编译错误 并且消息显示 分支目标偏移太大而短 我修改了