MCPcopy Create free account
hub / github.com/HaxeFoundation/hxcpp / MarkStringArray

Method MarkStringArray

src/hx/gc/Immix.cpp:2315–2362  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2313}
2314
2315void MarkStringArray(String *inPtr, int inLength, hx::MarkContext *__inCtx)
2316{
2317 #if 0
2318 if (MAX_GC_THREADS>1 && sAllThreads && inLength>4096)
2319 {
2320 int extra = inLength & 0x0f;
2321 for(int i=0;i<extra;i++)
2322 if (inPtr[i]) MarkObjectAlloc(inPtr[i],__inCtx);
2323
2324 hx::Object **ptrI = inPtr + extra;
2325 hx::Object **end = ptrI + (inLength& ~0x0f);
2326 hx::Object **dishOffEnd = end - 4096;
2327 while(ptrI<end)
2328 {
2329 // Are the other threads slacking off?
2330 if ((sRunningThreads != sAllThreads) && ptrI<dishOffEnd)
2331 {
2332 ptrI += sGlobalChunks.takeArrayJob(ptrI, end-ptrI);
2333 }
2334
2335 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2336 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2337 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2338 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2339 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2340 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2341 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2342 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2343 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2344 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2345 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2346 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2347 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2348 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2349 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2350 if (*ptrI) MarkObjectAlloc(*ptrI,__inCtx); ptrI++;
2351 }
2352 }
2353 else
2354 #endif
2355 {
2356 for(int i=0;i<inLength;i++)
2357 {
2358 const char *str = inPtr[i].raw_ptr();
2359 HX_MARK_STRING(str);
2360 }
2361 }
2362}
2363
2364#ifdef HXCPP_DEBUG
2365#define FILE_SCOPE

Callers

nothing calls this directly

Calls 2

MarkObjectAllocFunction · 0.85
takeArrayJobMethod · 0.80

Tested by

no test coverage detected