Skip to content

Commit 8a49377

Browse files
committed
mem leak用stderr打印,否则在.net ut中可能会被吃掉
1 parent b36714d commit 8a49377

File tree

1 file changed

+30
-30
lines changed
  • unity/native_src/backend-quickjs/quickjs

1 file changed

+30
-30
lines changed

unity/native_src/backend-quickjs/quickjs/quickjs.c

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2108,7 +2108,7 @@ void JS_FreeRuntime(JSRuntime *rt)
21082108
p = list_entry(el, JSGCObjectHeader, link);
21092109
if (p->ref_count != 0) {
21102110
if (!header_done) {
2111-
printf("Object leaks:\n");
2111+
fprintf(stderr, "Object leaks:\n");
21122112
JS_DumpObjectHeader(rt);
21132113
header_done = TRUE;
21142114
}
@@ -2124,7 +2124,7 @@ void JS_FreeRuntime(JSRuntime *rt)
21242124
}
21252125
}
21262126
if (count != 0)
2127-
printf("Secondary object leaks: %d\n", count);
2127+
fprintf(stderr, "Secondary object leaks: %d\n", count);
21282128
}
21292129
#endif
21302130

@@ -11802,7 +11802,7 @@ static JSValue JS_ToQuotedString(JSContext *ctx, JSValue val1)
1180211802

1180311803
static __maybe_unused void JS_DumpObjectHeader(JSRuntime *rt)
1180411804
{
11805-
printf("%14s %4s %4s %14s %10s %s\n",
11805+
fprintf(stderr, "%14s %4s %4s %14s %10s %s\n",
1180611806
"ADDRESS", "REFS", "SHRF", "PROTO", "CLASS", "PROPS");
1180711807
}
1180811808

@@ -11818,24 +11818,24 @@ static __maybe_unused void JS_DumpObject(JSRuntime *rt, JSObject *p)
1181811818

1181911819
/* XXX: should encode atoms with special characters */
1182011820
sh = p->shape; /* the shape can be NULL while freeing an object */
11821-
printf("%14p %4d ",
11821+
fprintf(stderr, "%14p %4d ",
1182211822
(void *)p,
1182311823
p->header.ref_count);
1182411824
if (sh) {
11825-
printf("%3d%c %14p ",
11825+
fprintf(stderr, "%3d%c %14p ",
1182611826
sh->header.ref_count,
1182711827
" *"[sh->is_hashed],
1182811828
(void *)sh->proto);
1182911829
} else {
11830-
printf("%3s %14s ", "-", "-");
11830+
fprintf(stderr, "%3s %14s ", "-", "-");
1183111831
}
11832-
printf("%10s ",
11832+
fprintf(stderr, "%10s ",
1183311833
JS_AtomGetStrRT(rt, atom_buf, sizeof(atom_buf), rt->class_array[p->class_id].class_name));
1183411834
if (p->is_exotic && p->fast_array) {
11835-
printf("[ ");
11835+
fprintf(stderr, "[ ");
1183611836
for(i = 0; i < p->u.array.count; i++) {
1183711837
if (i != 0)
11838-
printf(", ");
11838+
fprintf(stderr, ", ");
1183911839
switch (p->class_id) {
1184011840
case JS_CLASS_ARRAY:
1184111841
case JS_CLASS_ARGUMENTS:
@@ -11857,30 +11857,30 @@ static __maybe_unused void JS_DumpObject(JSRuntime *rt, JSObject *p)
1185711857
int size = 1 << typed_array_size_log2(p->class_id);
1185811858
const uint8_t *b = p->u.array.u.uint8_ptr + i * size;
1185911859
while (size-- > 0)
11860-
printf("%02X", *b++);
11860+
fprintf(stderr, "%02X", *b++);
1186111861
}
1186211862
break;
1186311863
}
1186411864
}
11865-
printf(" ] ");
11865+
fprintf(stderr, " ] ");
1186611866
}
1186711867

1186811868
if (sh) {
11869-
printf("{ ");
11869+
fprintf(stderr, "{ ");
1187011870
for(i = 0, prs = get_shape_prop(sh); i < sh->prop_count; i++, prs++) {
1187111871
if (prs->atom != JS_ATOM_NULL) {
1187211872
pr = &p->prop[i];
1187311873
if (!is_first)
11874-
printf(", ");
11875-
printf("%s: ",
11874+
fprintf(stderr, ", ");
11875+
fprintf(stderr, "%s: ",
1187611876
JS_AtomGetStrRT(rt, atom_buf, sizeof(atom_buf), prs->atom));
1187711877
if ((prs->flags & JS_PROP_TMASK) == JS_PROP_GETSET) {
11878-
printf("[getset %p %p]", (void *)pr->u.getset.getter,
11878+
fprintf(stderr, "[getset %p %p]", (void *)pr->u.getset.getter,
1187911879
(void *)pr->u.getset.setter);
1188011880
} else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_VARREF) {
11881-
printf("[varref %p]", (void *)pr->u.var_ref);
11881+
fprintf(stderr, "[varref %p]", (void *)pr->u.var_ref);
1188211882
} else if ((prs->flags & JS_PROP_TMASK) == JS_PROP_AUTOINIT) {
11883-
printf("[autoinit %p %d %p]",
11883+
fprintf(stderr, "[autoinit %p %d %p]",
1188411884
(void *)js_autoinit_get_realm(pr),
1188511885
js_autoinit_get_id(pr),
1188611886
(void *)pr->u.init.opaque);
@@ -11890,57 +11890,57 @@ static __maybe_unused void JS_DumpObject(JSRuntime *rt, JSObject *p)
1189011890
is_first = FALSE;
1189111891
}
1189211892
}
11893-
printf(" }");
11893+
fprintf(stderr, " }");
1189411894
}
1189511895

1189611896
if (js_class_has_bytecode(p->class_id)) {
1189711897
JSFunctionBytecode *b = p->u.func.function_bytecode;
1189811898
JSVarRef **var_refs;
1189911899
if (b->closure_var_count) {
1190011900
var_refs = p->u.func.var_refs;
11901-
printf(" Closure:");
11901+
fprintf(stderr, " Closure:");
1190211902
for(i = 0; i < b->closure_var_count; i++) {
11903-
printf(" ");
11903+
fprintf(stderr, " ");
1190411904
JS_DumpValue(rt, var_refs[i]->value);
1190511905
}
1190611906
if (p->u.func.home_object) {
11907-
printf(" HomeObject: ");
11907+
fprintf(stderr, " HomeObject: ");
1190811908
JS_DumpValue(rt, JS_MKPTR(JS_TAG_OBJECT, p->u.func.home_object));
1190911909
}
1191011910
}
1191111911
}
11912-
printf("\n");
11912+
fprintf(stderr, "\n");
1191311913
}
1191411914

1191511915
static __maybe_unused void JS_DumpGCObject(JSRuntime *rt, JSGCObjectHeader *p)
1191611916
{
1191711917
if (p->gc_obj_type == JS_GC_OBJ_TYPE_JS_OBJECT) {
1191811918
JS_DumpObject(rt, (JSObject *)p);
1191911919
} else {
11920-
printf("%14p %4d ",
11920+
fprintf(stderr, "%14p %4d ",
1192111921
(void *)p,
1192211922
p->ref_count);
1192311923
switch(p->gc_obj_type) {
1192411924
case JS_GC_OBJ_TYPE_FUNCTION_BYTECODE:
11925-
printf("[function bytecode]");
11925+
fprintf(stderr, "[function bytecode]");
1192611926
break;
1192711927
case JS_GC_OBJ_TYPE_SHAPE:
11928-
printf("[shape]");
11928+
fprintf(stderr, "[shape]");
1192911929
break;
1193011930
case JS_GC_OBJ_TYPE_VAR_REF:
11931-
printf("[var_ref]");
11931+
fprintf(stderr, "[var_ref]");
1193211932
break;
1193311933
case JS_GC_OBJ_TYPE_ASYNC_FUNCTION:
11934-
printf("[async_function]");
11934+
fprintf(stderr, "[async_function]");
1193511935
break;
1193611936
case JS_GC_OBJ_TYPE_JS_CONTEXT:
11937-
printf("[js_context]");
11937+
fprintf(stderr, "[js_context]");
1193811938
break;
1193911939
default:
11940-
printf("[unknown %d]", p->gc_obj_type);
11940+
fprintf(stderr, "[unknown %d]", p->gc_obj_type);
1194111941
break;
1194211942
}
11943-
printf("\n");
11943+
fprintf(stderr, "\n");
1194411944
}
1194511945
}
1194611946

0 commit comments

Comments
 (0)