Skip to content

Instantly share code, notes, and snippets.

@persenlee
persenlee / gist:344f1991aefa579dc1d8526854cf50af
Created January 10, 2019 02:48
objective-c block bridge
struct BlockDescriptor {
unsigned long int reserved;
unsigned long int size;
void (*copy)(void *dest,const void *src);
void (*dispose)(const void *);
const char *signature;
const char *layout;
};
struct BlockLayout {
@persenlee
persenlee / unused_class_analyze.py
Created November 12, 2018 06:41
find objective-c unused classes
import re
import sys
import os
from inspect import isfunction
class_prefix_filter = {'NS','UI','UN','AV','CA','CL','CI','CT','PH','PodsDummy','WK'}
all_classes = set()
all_super_classes = set()
reference_classes = set()
@persenlee
persenlee / unused_selector_analyze.py
Created November 12, 2018 06:40
find objective-c unused selector
import sys
import os
import re
white_selectors = ['.cxx_destruct']
#{class_name:[sel1,sel2,sel3...]}
all_selectors_dic = {}
#[sel1,sel2,sel3...]
all_ref_selectors = []
@persenlee
persenlee / analyze.py
Created November 9, 2018 07:37
linkmap file analyze by python
from inspect import isfunction
import sys
file_dic = {} #
size_dic = {}
result_dic = {}
Path = ''
Arch = ''
ObjectFileStart = '# Object files:'