不确定我是否正在浏览Chrome中的错误或我的CSS出了什么问题
问题是我在我的网站上使用了一个自定义的Farsi字体BMitra(它在公共领域是完全免费的),并且所有主流浏览器(最新的FF和IE6 +)都正在渲染这个字体,但是我的Chrome浏览了这个字体和开关到系统的默认值tahoma.
这是我的CSS:
@font-face {
font-family: 'BMitra';
font-weight: normal;
src: url('fonts/regular/BMitra.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('fonts/regular/BMitra.woff') format('woff'), /* Modern Browsers */
url('fonts/regular/BMitra.ttf') format('truetype'), /* Safari, Android, iOS */
url('fonts/regular/BMitra.svg#svgBMitra') format('svg'); /* Legacy iOS */
}
@font-face {
font-family: 'BMitra';
font-weight: bold;
src: url('fonts/bold/BMitraBd.woff') format('woff'), /* Modern Browsers */
url('fonts/bold/BMitraBd.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('fonts/bold/BMitraBd.ttf') format('truetype'), /* Safari, Android, iOS */
url('fonts/bold/BMitraBd.svg#svgBMitra') format('svg'); /* Legacy iOS */
}
Run Code Online (Sandbox Code Playgroud)
那么,有什么想法吗?这是webkit或其他方面的错误.提前致谢.
我不确定如何通过在单独的C++线程中使用事件发出来调用Node的主线程中的Node/v8函数.如何在C++线程中发出事件?
在考虑NanAsyncWorker或uv_queue_work之前:我不想以异步方式调用C++函数.我想做的恰恰相反,通过发出事件从C++调用Javascript函数.
我已经实现了一个简单的结构:
struct ListenerNode
{
ListenerNode() : previous(nullptr), next(nullptr), listener(nullptr), once(false) {}
std::shared_ptr<ListenerNode> previous;
std::shared_ptr<ListenerNode> next;
std::function<void(int)> listener;
bool once;
};
Run Code Online (Sandbox Code Playgroud)
这将代表场景图实现中的一个实体.我观察到的奇怪行为是当我使用结构时,就像:
int main(int argc, char** argv)
{
ListenerNode n;
}
Run Code Online (Sandbox Code Playgroud)
它泄漏了内存,但当我使用它时:
int main(int argc, char** argv)
{
ListenerNode* n = new ListenerNode();
delete n;
}
Run Code Online (Sandbox Code Playgroud)
它没有泄漏记忆!我不明白这里发生了什么.我一直认为,new当变量超出范围时,不要立即调用析构函数来创建类/结构的实例.
有人可以向我解释这里发生了什么吗?我也没有看到任何明显的参考增量.
我用我的问题大量评论了下面的代码.基本上问题是我试图假装argv,std::vector<std::string>但我从Visual Studio得到一个我不期望的行为.你能详细说明我在这里缺少什么吗?
std::vector<std::string> argv_storage;
for (std::size_t i = 0; i < 10; ++i)
{
// I copy output of generate_rand_str() because I will need it
// later in the code.
argv_storage.push_back( std::string( generate_rand_str() ) );
}
std::vector<char *> argv( argv_storage.size() + 1 ); // one extra for NULL
for (std::size_t i = 0; i != argv_storage.size(); ++i)
{
argv[i] = &argv_storage[i][0];
}
// Here if I access elements like argv.data()[index]
// they are perfectly fine but …Run Code Online (Sandbox Code Playgroud) c++ ×3
c++11 ×2
arabic ×1
css ×1
farsi ×1
font-face ×1
memory-leaks ×1
node-modules ×1
node.js ×1
persian ×1
shared-ptr ×1